spring在实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点,下面介绍四种比较常见的:
1. 实现各种的Aware接口
如BeanFactoryAware,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例
@Componentpublic class MyBeanFactoryAware implements BeanFactoryAware {@Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {System.out.println("=============MyBeanFactoryAware=========beanFactory====" );}}
2. 实现BeanPostProcessor接口
实现了BeanPostProcessor接口的bean,在实例化bean时Spring会帮我们调用接口中的方法。
@Componentpublic class MyBeanPostProcessor implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println("====postProcessBeforeInitialization====beanName: " + beanName);return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println("====postProcessAfterInitialization====beanName: " + beanName);return bean;}}
3. 实现InitializingBean接口
实现了InitializingBean接口的bean,在实例化bean时Spring会帮我们调用接口中的方法。
@Componentpublic class MyInitializingBean implements InitializingBean {@Overridepublic void afterPropertiesSet() throws Exception {System.out.println("==========afterPropertiesSet============");}}
4. 实现DisposableBean接口
实现了BeanPostProcessor接口的bean,在该bean死亡时Spring会帮我们调用接口中的方法。
@Componentpublic class MyDisposableBean implements DisposableBean {@Overridepublic void destroy() throws Exception {System.out.println("=============MyDisposableBean.destroy=============");}}
spring还提供了对应的注解来实现相同的功能,读者可以自行学习了解。
文章转载自Java技术藏金阁,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




