Spring工厂创建的对象,如何控制其作用域

2026-01-17 22:47:55

1、Spring框架下scope标签属性值以及其对应的应用范围说明如下图所示。

Spring工厂创建的对象,如何控制其作用域

2、打开Intellij IDEA,新建一个简单的基于Spring框架程序,主要包括两个演示不同scope属性的类ComputerA和ComputerC。简单演示程序架构如下图所示。

Spring工厂创建的对象,如何控制其作用域

3、ComputerA和ComputerC两个类,简单实现类构造函数,其中类ComputerA添加注解@Component以及@Scope,@Scope注解的value值对应为prototype,如下图所示。

Spring工厂创建的对象,如何控制其作用域

Spring工厂创建的对象,如何控制其作用域

4、配置spring.xml配置文件中,增加对类ComputerC的bean元素引入,并设置scope属性值为singleton,如下图所示。

Spring工厂创建的对象,如何控制其作用域

5、在main函数中实现对类ComputerA和ComputerC的引用。

Spring工厂创建的对象,如何控制其作用域

6、启动演示程序,打印日志如下图所示。可以看出ComputerC类由于配置了scope为singleton,Spring容器中是共享实例,因此其构造函数调用的时间是一致的。而ComputerA配置scope为prototype,因此每一次调用getBean,都重新实例化一次,其构造函数的调用时间不一致。

Spring工厂创建的对象,如何控制其作用域

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢