【面试普通人VS高手】Spring 中Bean的作用域有哪些?
一个工作3年的小伙子,去面试被问到Spring里面的问题。
这个问题比较简单,但是他却没有回答上来。
虽然他可以通过搜索引擎找到答案,但是如果没有理解,下次面试还是不会!
这个面试题是: “Spring中的Bean,作用域有哪些?”
对于这个问题,看看普通人和高手的回答。
普通人:
嗯。。。。。。。
高手:
好的,这个问题可以从几个方面来回答。
首先呢,Spring 框架里面的IOC容器,可以非常方便的去帮助我们管理应用里面的Bean对象实例。
我们只需要按照Spring里面提供的xml或者注解等方式去告诉IOC容器,哪些Bean需要被IOC容器管理就行了。
其次呢,既然是Bean对象实例的管理,那意味着这些实例,是存在生命周期,也就是所谓的作用域。
理论上来说,常规的生命周期只有两种:
- singleton, 也就是单例,意味着在整个Spring容器中只会存在一个Bean实例。
- prototype,翻译成原型,意味着每次从IOC容器去获取指定Bean的时候,都会返回一个新的实例对象。
但是在基于Spring框架下的Web应用里面,增加了一个会话纬度来控制Bean的生命周期,主要有三个选择
- request, 针对每一次http请求,都会创建一个新的Bean
- session,以sesssion会话为纬度,同一个session共享同一个Bean实例,不同的session产生不同的Bean实例
- globalSession,针对全局session纬度,共享同一个Bean实例
以上就是我对这个问题的理解。
总结
“技术框架的本质是去解决特定问题的,所以如果能够站在技术的角度去思考Spring”
当遇到这种问题的时候,就可以像这个高手的回答一样,能够基于场景来推断出答案。
就像我们现在写CRUD代码,它已经变成了一种基本能力去让我们完成复杂业务逻辑的开发。
本期的普通人VS高手面试系列就到这里结束了。
有任何不懂的技术面试题,欢迎随时私信我
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Mic带你学架构!
如果本篇文章对您有帮助,还请帮忙点个关注和赞,您的坚持是我不断创作的动力。欢迎关注「跟着Mic学架构」公众号公众号获取更多技术干货!

【面试普通人VS高手】Spring 中Bean的作用域有哪些?的更多相关文章
- spring中bean的作用域属性singleton与prototype的区别
1.singleton 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会 ...
- 详解Spring中Bean的作用域与生命周期
摘要:在利用Spring进行IOC配置时,关于bean的配置和使用一直都是比较重要的一部分,同时如何合理的使用和创建bean对象,也是小伙伴们在学习和使用Spring时需要注意的部分,所以这一篇文章我 ...
- Spring中Bean的作用域、生命周期
Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...
- Spring入门(五):Spring中bean的作用域
1. Spring中bean的多种作用域 在默认情况下,Spring应用上下文中所有的bean都是以单例(singleton)的形式创建的,即不管给定的一个bean被注入到其他bean多少次,每次所注 ...
- java——spring中bean的作用域
文章:理解Spring框架中Bean的作用域 博客地址:https://baijiahao.baidu.com/s?id=1610298792072480906&wfr=spider& ...
- 浅析Spring中bean的作用域
一.前言 刚刚花了点时间,阅读了一下Spring官方文档中,关于bean的作用域这一块的内容.Spring-4.3.21官方文档中,共介绍了七种bean作用域,这篇博客就来简单介绍一下这七种作用域 ...
- JavaEE开发之Spring中Bean的作用域、Init和Destroy方法以及Spring-EL表达式
上篇博客我们聊了<JavaEE开发之Spring中的依赖注入以及AOP>,本篇博客我们就来聊一下Spring框架中的Bean的作用域以及Bean的Init和Destroy方法,然后在聊一下 ...
- Spring中bean的作用域与生命周期
在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean.简单地讲,bean 就是由 IOC 容器初始化.装配及管理的对象,除此之外,bean 就与 ...
- Spring核心技术(五)——Spring中Bean的作用域
前文概述了Spring的容器,Bean,以及依赖的一些信息,本文将描述一下Bean的作用域 Bean的作用域 当开发者定义Bean的时候,同时也会定义了该如何创建Bean实例.这些具体创建的过程是很重 ...
随机推荐
- Python - 字符串基础知识
- 利用Properties类关联相关配置文件
文件目录 代码: package Lianxi;import java.io.FileInputStream;import java.io.FileNotFoundException;import j ...
- 【Linux-vim】vim文件:查看某几行,把某几行复制到另一个文件中
一.查看文件的某几行1.使用cat命令(1)查看文件的前10行: cat filename |head -n 10(2)查看文件后10行: cat filename |tail -n 10(3)查看文 ...
- C语言思维导图—自己整理的
- 在VisualStudio调试器中使用内存窗口和查看内存分布
调试模式下内存窗口的使用 在调试期间,"内存"窗口显示应用使用的内存空间.调试器窗口(如"监视"."自动"."局部变量" ...
- logback日志级别动态切换的终极方案(asm使用)
背景 一切皆有因果,所有事情,都有事件驱动.本方案的日志级别切换是由这样的背景下产生的: 单个生产环境上,有几百近千个微服务 日志级别切换不重启服务,要求即时生效果 由业务开发人员去修改代码或增加相关 ...
- 小程序wx.createInnerAudioContext()获取不到时长问题
最近在开发小程序中,需要用到音频播放功能.但在初始化时,使用InnerAudioContext.duration获取不到音频的时长. Page({ /** * 生命周期函数--监听页面初次渲染完成 * ...
- HTML5 Performance
简介 performance是html5的新特性之一,通过它,页面的开发者们可以非常精确的统计到自己页面的表现情况,从而有针对性的进行优化,提升用户体验. 下面是小姐姐对performance相关AP ...
- Factorials and Powers of Two
分析:我们可以看出这道题目的描述并不是很复杂,就是说对于一个给定的整数n,我们能否把他拆成k个powerful的数,也就是说这k个数要么是2的幂次,要么是某个数的阶乘,并且我们要让当前的k越小越好:然 ...
- SpringMVC的数据响应-回写数据
1.直接返回字符串 其他具体代码请访问chilianjie @RequestMapping("/report5") public String save5(HttpServletR ...