通过@Scope注解配置组件的作用范围
1、 组件配置类中声明的bean默认为单例模式。
2、 创建一个名为百度且年龄为10000的新人物对象并返回。
3、 }
4、 }
5、 测试类中验证容器获取的Java对象是否为同一实例。
6、 }
7、 }
8、 }
9、 @Scope注解包含四种取值类型
10、 @see ConfigurableBeanFactorySCOPE_PROTOTYPE 代表该Bean为多实例模式,每次请求都会创建一个新的实例对象。
11、 表示该Bean为单例模式,即在整个容器中仅存在一个实例,所有对该Bean的请求都将返回同一个对象。
12、 在Web开发环境中,可通过org.springframework.web.context.WebApplicationContext中的SCOPE_SESSION实现作用域控制,确保同一用户会话内仅创建一个Bean实例。该机制依赖于HTTP会话,适用于需要维持会话状态的场景,不同会话拥有独立实例,有效隔离数据,提升应用安全性与稳定性,但需注意会话过期及服务器集群环境下的同步问题。
13、 将组件配置中的返回对象设为多实例模式。
14、 创建一个名为百度、年龄为10000的新人员实例并返回。
15、 }
16、 }
17、 测试类中判断容器获取的Java对象是否为同一实例,当前程序预期返回false。
18、 Spring容器在单实例模式下,启动时会调用方法创建对象并存入容器,后续获取时直接从容器中取出,无需重复创建。
19、 多个实例中,只有在需要获取Bean时才会创建对应的对象。
