1、pom.xml
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.6.RELEASE</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.2</version> </dependency> </dependencies>
2、实体类
public class Car { public Car () { System.out.println("car constructor..."); } }
3、后置处理器实现类
import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; public class MyBeanPostProceessor implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (beanName.equals("car")) { System.out.println("car postProcessBeforeInitialization..."); } return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (beanName.equals("car")) { System.out.println("car postProcessAfterInitialization..."); } return bean; } }
4、配置类
import com.it.huaxin.beanpostprocessor.MyBeanPostProceessor; import com.it.huaxin.vo.Car; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class LifeCycleConfig { @Bean public Car car() { return new Car(); } @Bean public MyBeanPostProceessor myBeanPostProceessor() { return new MyBeanPostProceessor(); } }
5、测试类
import com.it.huaxin.config.LifeCycleConfig; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class LifeCycleTest { public static void main(String [] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(LifeCycleConfig.class); context.close(); } }
//结果:
car constructor...
car postProcessBeforeInitialization...
car postProcessAfterInitialization...