spring后处理bean,BeanPostProcessor

    xiaoxiao2021-03-25  102

    spring 提供一种机制,只要实现此接口BeanPostProcessor,并将实现类提供给spring容器,spring容器将自动执行,在初始化方法前执行before(),在初始化方法后执行after() 。 配置

    <bean class=""> public class MyBeanPostProcessor implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("前方法 : " + beanName); return bean; } @Override public Object postProcessAfterInitialization(final Object bean, String beanName) throws BeansException { System.out.println("后方法 : " + beanName); // bean 目标对象 // 生成 jdk 代理 return Proxy.newProxyInstance( MyBeanPostProcessor.class.getClassLoader(), bean.getClass().getInterfaces(), new InvocationHandler(){ @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("------开启事务"); //执行目标方法 Object obj = method.invoke(bean, args); System.out.println("------提交事务"); return obj; }}); } }

    配置

    <!-- 将后处理的实现类注册给spring --> <bean class="MyBeanPostProcessor"></bean>

    后处理bean作用于所有bean 通过参数2beanname进行控制可作用于一个bean

    转载请注明原文地址: https://ju.6miu.com/read-18070.html

    最新回复(0)