暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Spring提供的扩展点你知道吗?

Java技术藏金阁 2021-11-04
539

       spring在实例化阶段主要是通过反射或者CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点,下面介绍四种比较常见的:

1. 实现各种的Aware接口

      如BeanFactoryAware,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例

@Component
public class MyBeanFactoryAware implements BeanFactoryAware {
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
System.out.println("=============MyBeanFactoryAware=========beanFactory====" );
}
}

2. 实现BeanPostProcessor接口

       实现了BeanPostProcessor接口的bean,在实例化bean时Spring会帮我们调用接口中的方法。 

@Component
public class MyBeanPostProcessor implements BeanPostProcessor {


@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("====postProcessBeforeInitialization====beanName: " + beanName);
return bean;
}


@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("====postProcessAfterInitialization====beanName: " + beanName);
return bean;
}
}

3. 实现InitializingBean接口

      实现了InitializingBean接口的bean,在实例化bean时Spring会帮我们调用接口中的方法。

@Component
public class MyInitializingBean implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("==========afterPropertiesSet============");
}
}

4. 实现DisposableBean接口

       实现了BeanPostProcessor接口的bean,在该bean死亡时Spring会帮我们调用接口中的方法。

@Component
public class MyDisposableBean implements DisposableBean {
@Override
public void destroy() throws Exception {
System.out.println("=============MyDisposableBean.destroy=============");
}
}


spring还提供了对应的注解来实现相同的功能,读者可以自行学习了解。


文章转载自Java技术藏金阁,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论