Spring源码解析(八)——生命周期——BeanPostProcessor在spring底层的使用
一、ApplicationContextAwareProcessor
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@Component
public class Dog implements ApplicationContextAware{
private ApplicationContext applicationContext;
public Dog(){
System.out.println("dog constructor...");
}
//对象创建并赋值之后调用
@PostConstruct
public void init(){
System.out.println("[email protected]");
}
//容器移除对象之前
@PreDestroy
public void detory(){
System.out.println("[email protected]");
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
Dog类实现ApplicationContextAware接口,以此注入spring容器。靠的就是ApplicationContextAwareProcessor。
二、BeanValidationPostProcessor