- 注入属性
Aware
的 setter 方法注入资源BeanPostProcessor
进行初始化前后的处理(BeanPostProcessor
实现类不能处理BeanPostProcessor
实现类)@PostConstruct
@PreDestroy
在 boot-init 项目中, BeanLifeCycleAllInOne
,AfterBeanInitial
@Slf4j
@Component
public class BeanLifeCycleAllInOne implements BeanNameAware, ApplicationContextAware, BeanFactoryAware, EnvironmentAware, ResourceLoaderAware {
@Override
public void setBeanName(String name) {
log.info("BeanNameAware.setBeanName -- {}", name);
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
log.info("ApplicationContextAware.setApplicationContext");
}
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
log.info("BeanFactoryAware.setBeanFactory");
}
@Override
public void setEnvironment(Environment environment) {
log.info("EnvironmentAware.setEnvironment");
}
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
log.info("ResourceLoaderAware.setResourceLoader");
}
@PostConstruct
public void postConstruct() {
log.info("BeanLifeCycleAllInOne.postConstruct");
}
@PreDestroy
public void preDestroy() {
log.info("BeanLifeCycleAllInOne.preDestroy");
}
}
@Slf4j
@Component
public class AfterBeanInitial implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (BeanLifeCycleAllInOne.class.getSimpleName().equalsIgnoreCase(beanName)) {
log.info("AfterBeanInitial.postProcessBeforeInitialization -- {}", beanName);
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (BeanLifeCycleAllInOne.class.getSimpleName().equalsIgnoreCase(beanName)) {
log.info("AfterBeanInitial.postProcessAfterInitialization -- {}", beanName);
}
return bean;
}
}
2019-09-01 11:05:36.426 INFO 53094 --- [ main] m.r.b.l.bean.BeanLifeCycleAllInOne : BeanNameAware.setBeanName -- beanLifeCycleAllInOne
2019-09-01 11:05:36.426 INFO 53094 --- [ main] m.r.b.l.bean.BeanLifeCycleAllInOne : BeanFactoryAware.setBeanFactory
2019-09-01 11:05:36.426 INFO 53094 --- [ main] m.r.b.l.bean.BeanLifeCycleAllInOne : EnvironmentAware.setEnvironment
2019-09-01 11:05:36.426 INFO 53094 --- [ main] m.r.b.l.bean.BeanLifeCycleAllInOne : ResourceLoaderAware.setResourceLoader
2019-09-01 11:05:36.426 INFO 53094 --- [ main] m.r.b.l.bean.BeanLifeCycleAllInOne : ApplicationContextAware.setApplicationContext
2019-09-01 11:05:36.426 INFO 53094 --- [ main] m.r.b.lifecycle.bean.AfterBeanInitial : AfterBeanInitial.postProcessBeforeInitialization -- beanLifeCycleAllInOne
2019-09-01 11:05:36.426 INFO 53094 --- [ main] m.r.b.l.bean.BeanLifeCycleAllInOne : BeanLifeCycleAllInOne.postConstruct
2019-09-01 11:05:36.427 INFO 53094 --- [ main] m.r.b.lifecycle.bean.AfterBeanInitial : AfterBeanInitial.postProcessAfterInitialization -- beanLifeCycleAllInOne
...
2019-09-01 11:06:57.845 INFO 53094 --- [ Thread-16] m.r.b.l.bean.BeanLifeCycleAllInOne : BeanLifeCycleAllInOne.preDestroy