________________初学springboot3

 pring 几个扩展点

___________________________BeanPostProcesser___________________________

bean初始化时触发

在bean依赖装配(设置完成后)完成触发

这里可以指定Bean做一些处理,比如返回该对象的代理对象

@Component

public class EchoBeanPostProcesser implements BeanPostProcessor {

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {

System.out.println("≈≈≈≈≈≈≈≈≈>>>属性设置之后,init之前"+bean.getClass());

if(bean instanceof User)

return new LogUser();

return bean;

public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {

System.out.println("≈≈≈≈≈≈≈≈≈>>>属性设置之后,init之后"+bean.getClass());

return bean;

}

}

___________________________BeanFactoryPostProcessor___________________________

容器初始化时触发

@Component

public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor {

public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

System.out.println(beanFactory.getBeanDefinitionCount());

}

}

BeanFactoryPostProcessor在Spring容容器初始化之后触发,且只能触发一次

触发司机比BeanPostProcessor早

___________________________BeanDefinitRegistryPostProcessor___________________________

可以拿到ConfigurableListableBeanFactory,BeanDefinitionRegistry 两个对象

BeanDefinitionRegistry 对象可以动态注入Bean 

猜你喜欢

转载自www.cnblogs.com/qiqisx/p/9336540.html