博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Spring4揭秘 BeanFactory】修改Bean---BeanPostProcessor
阅读量:4291 次
发布时间:2019-05-27

本文共 1373 字,大约阅读时间需要 4 分钟。

一、BeanPostProcessor接口

BeanPostProcessor 主要对其他Bean进行处理,例如为其他Bean生成代理等。

接口定义如下:

public interface BeanPostProcessor {
//实例化、依赖注入完毕,在调用显示的初始化之前完成一些定制的初始化任务 Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException; //实例化、依赖注入、初始化完毕时执行 Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException; }

二、自定义BeanPostProcessor

这里写代码片

三、实现类

BeanNameAutoProxyCreator

根据Bean实例的name属性,创建Bean实例的代理

DefaultAdvisorAutoProxyCreator

根据Advisor创建代理

ApplicationContextAwareProcessor

这个类作为ApplicationContext的回调类,可以回调一些实现*Aware接口的类

PostProcessorRegistrationDelegate$BeanPostProcessorChecker

如果一些Bean不适合被所有BeanPostProcessor处理,将会记录一些日志

if (logger.isInfoEnabled()) {    logger.info("Bean '" + beanName + "' of type [" + bean.getClass() + "] is not      eligible for getting processed by all BeanPostProcessors " +"(for example: not eligible for auto-proxying)");}

ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor

处理实现ImportAware接口的Bean

ConfigurationClassPostProcessor$EnhancedConfigurationBeanPostProcessor

处理实现EnhancedConfiguration接口的类

CommonAnnotationBeanPostProcessor

支持以下JSR-250注解:

@Resource
@PostConstruct
@PreDestroy

AutowiredAnnotationBeanPostProcessor

支持@Autowired 、@Value 的自动配置

RequiredAnnotationBeanPostProcessor

处理@Required注解

PostProcessorRegistrationDelegate$ApplicationListenerDetector

转载地址:http://zshgi.baihongyu.com/

你可能感兴趣的文章
判断两个链表是否相交并找出交点
查看>>
归并排序
查看>>
STL常见问题
查看>>
time_wait和close_wait状态
查看>>
STL中vector、list、deque和map的区别
查看>>
Linux下多线程查看工具(pstree、ps、pstack)
查看>>
PID PPID LWP NLWP
查看>>
查看线程CPU占用情况
查看>>
查看个线程的CPU 内存占用
查看>>
svn中设置文件夹链接
查看>>
find ./ -name "*.cgi" |xargs -i cp "{}" ./cgi-bin/
查看>>
svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add
查看>>
mysql事务处理用法与实例详解
查看>>
Python模块——struct
查看>>
mysql中select * for update
查看>>
linux vmstat 1 ,watch , pmap -p,
查看>>
MYSQL 相关
查看>>
python 构建client 程序
查看>>
c++ 加载so动态库中的资源
查看>>
加解密 签名
查看>>