Spring杂谈二
- bean回调的生命周期
当bean初始化的时候调用方法,销毁也调用的方法,回调。
- 三种方法回调:实现接口、xml配置、注解
- 实现InitializingBean接口,方法初始化之后执行afterPropertiesSet方法。
2.销毁执行回调方法,实现DisposableBean
3.默认执行的方法,在对应bean配置init-method=“init”
4.使用注解@PostConstruct和@PreDestroy
- depends-on:一个bean不依赖另一个beans,但是里面有方法需要从里面拿,所以必须先初始化另一个bean
-
Lazy-initialized Beans:一开始不会实例化,用的时候才实例化,@Lazy默认为true
-
包扫描
正则表达式的格式:FilterType.REGEX
-
@Primary 解决两个同类型bean的byType时候出错。
-
@Qualifier("")具体的类,解决同类型bean的byType的错误
-
加入spring-context-indexer,在spring启动的时候会创建包的所以,不会直接扫描包,而扫描索引,提升启动速度
Spring的bean定义配置文件
-
Spring循环引用
循环引用借助Spring的缓存区,单例新建的实例存在缓存中,原型不存在缓存中,所以不能实现循环引用。 -
@Profile
一:可以让配置文件在某种地方生效
二:可以让配置文件中的某个bean生效