- 从企业级开发到云原生微服务:Spring Boot实战
- 汪云飞等
- 154字
- 2021-04-04 11:26:51
3.3 对Bean的处理(BeanPostProcessor)
可以通过实现BeanPostProcessor接口,在构造时对容器内所有或者部分指定Bean进行处理。和@PostConstruct与@PreDestroy不同的是,它针对的是IoC容器里的所有的Bean。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_68_01.jpg?sign=1739425808-zEe4owCOS0gTz27G72yive3kIIc88Fs5-0-4bc27a8650ac5931f6883c0897d0a777)
通过覆写postProcessBeforeInitialization和postProcessAfterInitialization方法,所有的Bean在初始化之前都会执行 postProcessBeforeInitialization里的处理逻辑,在初始化之后都会执行postProcessAfterInitialization里的处理逻辑。执行结果如图3-14所示。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_68_02.jpg?sign=1739425808-B9g7T8fTMVanaGaZ6o96yfxH0xbqsC7m-0-7f38ceba3233d7ab9a4f7a076acd8e61)
图3-14
如果想要缩小Processor的处理范围,则可以通过判断Bean类型来实现。
![](https://epubservercos.yuewen.com/E5E2EB/18096059808236406/epubprivate/OEBPS/Images/37792_69_01.jpg?sign=1739425808-9m84bgwdPsPBpMH3xuEULu0xks0NY7gq-0-44149254816335ec23c67a7a9e6480d0)