Spring(十一)-- 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(十一)-- Spring代理生成器的更多相关文章
- SSM-Spring-15:Spring中名称自动代理生成器BeanNameAutoProxyCreator
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 名称自动代理生成器:BeanNameAutoProxyCreator 为了更好的测试,我放了俩个接口,俩个实现 ...
- 使用BeanNameAutoProxyCreator实现spring的自动代理
提到代理,我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置 ...
- Spring框架_代理模式(静态代理,动态代理,cglib代理)
共性问题: 1. 服务器启动报错,什么原因? * jar包缺少.jar包冲突 1) 先检查项目中是否缺少jar包引用 2) 服务器: 检查jar包有没有发布到服务器下: ...
- spring设计模式_代理模式
代理模式应该是Spring核心设计模式之一了 先说下代理模式特性: 1.有代理人和被代理人 2.对于被代理的人来说,这件事情是一定要做的,但是我又不想做,所有就找代理人来做. 3.需要获取到被代理人的 ...
- spring aop 的代理工厂
参考 https://docs.spring.io/spring/docs/4.3.11.RELEASE/spring-framework-reference/htmlsingle/#aop-unde ...
- Spring中的代理模式
代理模式 所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式是一种 ...
- spring AOP 动态代理和静态代理以及事务
AOP(Aspect Oriented Programming),即面向切面编程 AOP技术,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装 ...
- Hibernate 延迟加载的代理模式 和 Spring AOP的代理模式
Hibernate 延迟加载的代理模式 和 Spring AOP的代理模式 主题 概念 Hibernate 延迟加载的代理模式 Spring AOP的代理模式 区别和联系 静态代理和动态代理 概念 代 ...
- 解决spring使用动态代理
解决spring使用动态代理类型转换失败的问题--java.lang.ClassCastException: com.sun.proxy.$Proxy$ cannot be cast to ... 转 ...
随机推荐
- tar:文件打包归档
造冰箱的大熊猫@cnblogs 2018/12/24 1.什么是tar 1.1.tar tar命令将指定的文件.文件夹打包(存储)为一个文件(归档文件,archive file).tar将被归档文件以 ...
- CentOS8编译openocd-0.10.0
1.sudo yum install libusbx-devel 2. ./configure --prefix=$HOME/openocd-0.10.0 --enable-jlink CFLAGS= ...
- zookeeper系列(五)zookeeper在大型分布式系统中的应用
作者:leesf 掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6063694.html 尊重原创感谢博主公开这么好的博文, ...
- 线程系列2--Java线程的互斥技术
java的多线程互斥主要通过synchronized关键字实现.一个线程就是一个执行线索,多个线程可理解为多个执行线索.进程有独立的内存空间,而进程中的线程则是共享数据对象资源.这样当多个执行线索在C ...
- mysql 日常操作-DDL
1 修改字段类型 需求修改表字段类型 alter table 表名 modify column 修改的字段(列名) 类型(修改的类型) ALTER TABLE sys_entry_item m ...
- Eclipse项目迁移到MyEclipse后,继承HttpServlet报错问题
网上好多说法,比如要去对比eclipse和myeclipse的.project文件等等,但我的问题就是Libraries没有导入tomcat,导入之后,报错就消失了. 这里没有给出导入方法,只是给遇到 ...
- uniapp导航栏自定义按钮及点击事件
本文链接:https://blog.csdn.net/qq_33807889/article/details/89945674第一步:显示按钮假设页面名称为:AddSort 在pages.json中找 ...
- spark streaming 与 storm的对比
feature strom (trident) spark streaming 说明 并行框架 基于DAG的任务并行计算引擎(task parallel continuous computati ...
- import 和 require 的 区别
node编程中最重要的思想就是模块化,import和require都是被模块化所使用. 遵循规范 require 是 AMD规范引入方式 import是es6的一个语法标准,如果要兼容浏览器的话必须转 ...
- android data binding jetpack I 环境配置 model-view 简单绑定
android data binding jetpack VIII BindingConversion android data binding jetpack VII @BindingAdapter ...