Spring--代理生成器
Posted 倾城月光﹋淡如水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring--代理生成器相关的知识,希望对你有一定的参考价值。
Spring代理生成器
1.创建需要的dao接口
2.创建需要的daoImpl实现类
3.创建前置增强类
4.创建spring.xml文件
<!-- 这个案例 需要解决的问题: 一个代理工厂 配置 多个目标对象!--> <!--01.配置目标对象--> <bean id="userDao" class="com.xdf.dao.UserDaoImpl"/> <!--为了 测试 会给 所有的bean注入增强--> <bean id="userDao2" class="com.xdf.dao.UserDaoImpl"/> <!--02.配置相应的增强类--> <bean id="before" class="com.xdf.dao.BeforeAdvice"/> <!--03.设置顾问 让目标对象和通知产生关系--> <bean id="myAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor"> <!--配置通知--> <property name="advice" ref="before"/> <!--配置切入点--> <property name="mappedName" value="sleep"/> </bean> <!--04.配置自动的代理生成器 底层其实就是执行了bean的后处理器 弊端: 就是会给容器中所有的bean 都注入增强! 不能取消!--> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>
5. 创建测试类
@Test public void defaultTest(){ ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml"); UserDao dao= context.getBean("userDao", UserDao.class); //UserDao dao= context.getBean("userDao2", UserDao.class); 也会被注入增强方法 dao.eat(); dao.sleep(); }
我们肯定不需要容器管理的所有bean都被增强! 这时候就需要使用另外一个BeanNameAutoProxyCeator!
6. 创建beanName.xml文件
7. 创建测试方法
以上是关于Spring--代理生成器的主要内容,如果未能解决你的问题,请参考以下文章