使用BeanPostProcessor自定义bean实例
控制实例化逻辑和依赖解析。对于多个BeanPostProcessor,可以实现Ordered接口来控制调用顺序。注意,操作的是Bean实例。同时,BeanPostProcessor只归属于某一个容器,不具有继承关系。
对于调用顺序,如果是通过xml配置自动检测,则由ApplicationContext容器控制(Ordered起作用);如果是通过编程方式,则Ordered不起作用,顺序只和注册顺序有关;调用顺序,编程方式总是优先于配置方式。
例如:RequiredAnnotationBeanPostProcessor
使用BeanFactoryPostProcessor自定义bean配置元数据
注意,操作的是BeanDefinition实例。同样,可以实现Ordered接口来控制调用顺序。
例如:PropertyOverrideConfigurer、PropertyPlaceholderConfigurer
閱讀更多 有趣的代碼 的文章