面试突击:Bean 作用域是啥?它有几种类型?

网站建设4年前发布
10 0 0

20230306100027151a6a2926bb4e4eeef622a7d55493c9668023791,作者 | 磊哥,来源 | Java面试真题解析(ID:aimianshi666),转载请联系授权(微信ID:GG_Stone),Spring 框架作为一个管理 Bean 的 IoC 容器,那么 Bean 自然是 Spring 中的重要资源了,那 Bean 的作用域是什么意思?又有几种类型呢?接下来我们一起来看。,​Bean 的作用域是指 Bean 在 Spring 整个框架中的某种行为模式。,比如 singleton 单例作用域,就表示 Bean 在整个 Spring 中只有一份,它是全局共享的,当有人修改了这个值之后,那么另一个人读取到的就是被修改后的值。,举个例子,比如我们在 Spring 中定义了一个单例的 Bean 对象 user(默认作用域为单例),具体实现代码如下:,然后,在 A 类中使用并修改了 user 对象,具体实现代码如下:,最后,在 B 类中也使用了 user 对象,具体实现代码如下:,此时我们访问 B 对象中的 getUser 方法,就会发现此时的用户名为 A 类中修改的“MySQL”,而非原来的“Java”,这就说明 Bean 对象 user 默认就是单例的作用域。如果有任何地方修改了这个单例对象,那么其他类再调用就会得到一个修改后的值。,在 Spring 中,Bean 的常见作用域有以下 5 种:,注意:后 3 种作用域,只适用于 Spring MVC 框架。,我们可以通过 @Scope  注解来设置 Bean 的作用域,它的设置方式有以下两种:,具体设置代码如下:,202303061000277590b8a09318d91746c329c4d51ebc09751dab80720230306100027771bfcb53bc7d488ae48077be1ac152a31cb63580202303061000282540a9e07676e1165b70463cf417c0ee0ef324550,Bean 的作用域是指 Bean 在 Spring 整个框架中的某种行为模式。Bean 的常见作用域有 5 种:singleton(单例作用域)、prototype(原型作用域)、request(请求作用域)、session(请求作用域)、application(全局作用域),注意后 3 种作用域只适用于 Spring MVC 框架。

© 版权声明

相关文章