【面试普通人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实例.这些具体创建的过程是很重 ...
随机推荐
- Linux 环境下如何查找哪个线程使用 CPU 最长?
1.获取项目的 pid,jps 或者 ps -ef | grep java,这个前面有讲过 2.top -H -p pid,顺序不能改变
- 如何运行exe文件
有三种方式 第一种:找到所在文件双击运行. 第二种:在命令行里面运行所在文件夹的位置,在输入文件名. 第三种:加到环境变量里面执行
- 数据库遇到的问题之“datetime设置默认为CURRENT_TIMESTAMP时报无效默认问题”和“时区问题”
一.问题1 问题描述: 今日加入创建时间和修改时间,并设置为默认CURRENT_TIMESTAMP时,出现错误,指向sql中的datetime字段,查了一下,发现是版本问题 立马查询自己的MySQL版 ...
- 攻防世界 ics-06
ics-06 进入题目有点吓人,不过我都点了一下发现只有报表中心可以进去 进入报表中心在url中发现?id=1,一开始以为是sql注入结果啥也没探测到,这题脑洞有点,没有任何提示直接爆破id即可获得f ...
- 前端每日实战:89# 视频演示如何用 CSS 和 D3 创作旋臂粒子动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/xJrOqd 可交互视频 此视频是可 ...
- 抽象方法不能为private,final或者static,为什么?
4)抽象方法不能为private,final或者static, native, synchrozied为什么?[新手可忽略不影响继续学习]马克-to-win:抽象方法的最实质的意义在于被未来的子类覆盖 ...
- audio微信自动播放以及自定义样式
audio标签如下: <audio id="audioTag" src="" autoplay="autoplay" controls ...
- 使用Object.Defineproperties改变对象数据结构
此方法设置键的时候如果需要使键为变量则需要加中括号[] 如下 let addKeys = Number(keys[keys.length - 1]) + 1 Object.assign(this.t ...
- springboot集成spring security安全框架入门篇
一. :spring security的简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下 ...
- Visual Studio 打包和安装 exe
# Visual Studio 打包和安装 exe > **小型项目(无复杂的库)** //VS2022 作为演示平台 > 1.解决方案配置 = Release > 2.解决 ...