bean生命周期2

来源:互联网 发布:开淘宝店挣钱么 编辑:程序博客网 时间:2024/06/05 10:59

后处理bean BeanPostProcessor

1编写实现类

package com.itheima.e_lifecycle;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class MyBeanPostProcessor implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName)throws BeansException {System.out.println("前方法");return bean;}@Overridepublic Object postProcessAfterInitialization(final Object bean, String beanName)throws BeansException {System.out.println("后方法");//目标对象//生成jdk 代理 目的在目标方法前后执行(例如开启事务,提交事务)return Proxy.newProxyInstance(MyBeanPostProcessor.class.getClassLoader(), bean.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {// TODO Auto-generated method stubSystem.out.println("----开启事务");//执行目标方法Object obj =  method.invoke(bean, args) ;System.out.println("-----提交事务");return obj;}}) ;}}


2配置

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




原创粉丝点击