文章
一、Bean的生命周期
Bean的后置处理器会在构造、依赖注入、初始化阶段前后增强,销毁之前增强
二、模板方法
@Component
public class Test03 {
public static void main(String[] args) {
MyBeanFactory myBeanFactory = new MyBeanFactory();
myBeanFactory.addBeanPostProcessor(bean -> System.out.println("解析 Autowired"));
myBeanFactory.getBean();
}
}
class MyBeanFactory{
//模板方法
public Object getBean(){
Object bean = new Object();
System.out.println("构造:"+bean);
System.out.println("依赖注入:"+bean);
for (BeanPostProcessor beanPostProcessor : list) {
beanPostProcessor.init(beanPostProcessor);
}
System.out.println("初始化:"+bean);
return bean;
}
private final List<BeanPostProcessor> list=new ArrayList<>();
public void addBeanPostProcessor(BeanPostProcessor beanPostProcessor){
list.add(beanPostProcessor);
}
}
interface BeanPostProcessor{
void init(BeanPostProcessor beanPostProcessor);
}