spring源码分析笔记(4)spring bean的注入
写博客是因为之前本地的笔记老是容易丢失,所以现在抽空把能找到的搬运到博客上,也是为了日后便于查看。个人理解,很可能有错误,大家批判着看
spring注入方式分两种(一般就是指手动注入):
1.setter
2.construct
手动装配@Atuowried 是使用setter方式注入,源码中使用field.set方法,反射注入
自动注入模型有4种 只能在xml中指定,xml注入需要指定set或者construct方法
no
bytype
byname
construct
spring中单例类中依赖了原型的类,使原型起作用(官网中有)
1.@Lookup 单例类中加一个返回原型类的方法,加上@Lookup注解
2.单例类中注入或实现ApplicationContext,每次从ApplicationContext中get原型的类
属性注入在bean初始化之前,在@PostConstruct之前
实现生命周期@PostConstruct回调有3种方法,3种可以同时使用,如果同时作用在一个方法上,只能触发一次
作用顺序是1–>2–>3 @PreDestroy类似
1.加@PostConstruct注解
2.实现InitializingBean接口,重写里面的afterPropertiesSet()方法
3.定义init()方法,并在xml中指定init方法