第十三章 后置处理Bean
BeanPostProcessor: 对Spring工厂所创建的对象,进行再加工
注意: BeanPostProcessor是一个接口
-
后置处理Bean的原理
程序员实现BeanPostProcessor接口,重写规定的方法: Object postProcessBeforeInitialization(Object bean,String beanName) 作用: Spring创建完对象,并进行注入后,可以运行Before方法进行加工 通过方法参数获得Spring创建好的对象 通过返回值将加工好的对象交给Spring Object postProcessAfterInitialization(Object bean,String beanName) 作用: Spring执行完对象的初始化操作后,可以运行After方法进行加工 通过方法参数获得Spring创建好的对象 通过返回值将加工好的对象交给Spring 实战中: 很少处理Spring的初始化操作,这种情况下,没必要区分Before After.只需实现After即可 注意: Before方法可以什么都不用写,但必须将bean返回
-
BeanPostProcessor的开发步骤
-
用一个类实现BeanPostProcessor接口
public class MyBeanPostProcessor implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { /* if (bean instanceof Category category) { category.setName("SWJ"); } */ if(bean instanceof Category){ Category category = (Category) bean; category.setName("SWJ"); } return bean; } }
-
在Spring配置文中进行配置
<bean id="myBeanPostProcessor" class="com.dong.beanpost.MyBeanPostProcessor"/>
-
细节
BeanPostProcessor会对Spring工厂中所有创建的对象进行加工
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现