今天开始学习Spring,重点记录在配置文件中如何设置Bean的作用域。
1、 以下是某Spring Java项目的目录结构示意图。
2、 下图展示了该Maven项目的pom.xml配置文件,从中可见项目仅引入了两个依赖包,具体所示。
3、 以下是定义的Address类,包含两个属性,提供了对应的set和get方法,并重写了toString方法以便查看对象信息,具体代码如下所示。
4、 在Bean配置文件中定义address的Bean时,可设置其scope属性为singleton。默认情况下,Bean的scope即为singleton模式。在此模式下,Spring容器会为每个声明的Bean仅创建一个实例,该实例在整个IOC容器中具有唯一性,并可供所有请求共享使用。无论多少次获取该Bean,返回的都是同一个对象实例,从而确保全局一致性,提升性能并减少资源消耗。
5、 下图展示了程序的主入口代码,首先获取IOC容器,再通过ID从容器中取出指定的Bean,共获取两个实例。观察控制台输出结果可知,两次获取的Bean对象完全相同,表明在容器中该Bean为单例模式,始终返回同一个实例。
6、 修改配置文件中address对应的bean,将其属性设置为。此时,每次从IOC容器中获取该bean时,都会创建并返回一个新的实例对象,确保各个对象之间相互独立,互不干扰,适用于需要多实例的场景。
7、 下图展示了程序的主入口代码,首先获取IOC容器,再通过ID从容器中获取指定的Bean,共获取两个实例。观察控制台输出结果可知,两次获取的Bean并非同一个对象,说明每次获取都创建了新的实例,体现了容器中Bean的作用域特性,具体表现所示。
