标签:author scan lse 默认 公众号 请求 作用 als getbean
五一了来一篇轻松的文章;关注公众号:知识追寻者;
知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)
spring定义了多种bean的作用域,常用的4种如下:
在spring容器中由spring管理的bean默认都是单例;
使用@Scope
注解指定作用域类型;
单例即一个对象仅有一个实例;
被单类
/**
* @Author lsc
* <p> </p>
*/
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
// 等同于@Scope("singleton")
@Component
public class Sheet {
}
配置类
/**
* @Author lsc
* <p> </p>
*/
@Configuration
@ComponentScan
public class Config {
}
测试
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
// 单例测试
Sheet sheetA = context.getBean(Sheet.class);
Sheet sheetB = context.getBean(Sheet.class);
// sheetA = sheetB? true
System.out.println("sheetA = sheetB? " + sheetA.equals(sheetB));
}
原型就是多例,一个对象有多个实例;
棉类
/**
* @Author lsc
* <p> </p>
*/
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Component
public class Cotton {
}
测试
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
// 原型 多例测试
Cotton cottonA = context.getBean(Cotton.class);
Cotton cottonB = context.getBean(Cotton.class);
// cottonA 与 cottonB 是否相等:false
System.out.println("cottonA 与 cottonB 是否相等:" + cottonA.equals(cottonB));
context.close();
}
标签:author scan lse 默认 公众号 请求 作用 als getbean
原文地址:https://www.cnblogs.com/zszxz/p/12813602.html