@Scope-作用域调整
prototype多实例
配置类
// 配置类注解 告诉spring这是个配置 @Configuration public class MyConfig { /** * @see org.springframework.beans.factory.config.ConfigurableBeanFactory#SCOPE_PROTOTYPE prototype * @see org.springframework.beans.factory.config.ConfigurableBeanFactory#SCOPE_SINGLETON singleton * @see org.springframework.web.context.WebApplicationContext#SCOPE_REQUEST request * @see org.springframework.web.context.WebApplicationContext#SCOPE_SESSION sesssion * prototype:多实例的:ioc容器启动并不会去调用方法创建对象放在容器中。 * 每次获取的时候才会调用方法创建对象; * singleton:单实例的(默认值):ioc容器启动会调用方法创建对象放到ioc容器中。 * 以后每次获取就是直接从容器(map.get())中拿, * request:同一次请求创建一个实例 * session:同一个session创建一个实例 */ @Scope("prototype") @Bean public Pet configName(){ return new Pet("小猫",2); } }
输出
@Test public void test1() { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class); String[] beanNamesForType = applicationContext.getBeanDefinitionNames(); for (String name : beanNamesForType) { System.out.println(name); } Object configName = applicationContext.getBean("configName"); Object configName1 = applicationContext.getBean("configName"); System.out.println(configName == configName1); }
输出结果
singleton单实例
// 配置类注解 告诉spring这是个配置 @Configuration public class MyConfig { /** * @see org.springframework.beans.factory.config.ConfigurableBeanFactory#SCOPE_PROTOTYPE prototype * @see org.springframework.beans.factory.config.ConfigurableBeanFactory#SCOPE_SINGLETON singleton * @see org.springframework.web.context.WebApplicationContext#SCOPE_REQUEST request * @see org.springframework.web.context.WebApplicationContext#SCOPE_SESSION sesssion * prototype:多实例的:ioc容器启动并不会去调用方法创建对象放在容器中。 * 每次获取的时候才会调用方法创建对象; * singleton:单实例的(默认值):ioc容器启动会调用方法创建对象放到ioc容器中。 * 以后每次获取就是直接从容器(map.get())中拿, * request:同一次请求创建一个实例 * session:同一个session创建一个实例 */ @Scope("singleton") @Bean public Pet configName(){ return new Pet("小猫",2); } }
输出
输出结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?