博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring(九)Spring中的两种自动代理
阅读量:7061 次
发布时间:2019-06-28

本文共 2392 字,大约阅读时间需要 7 分钟。

这里说的自动代理说的是自动代理bean对象,就是说在xml中不用再配置代理工厂,就可以自动代理

下面来说第一种

第一种自动代理:默认自动代理生成器(DefaultAdvisorAutoProxyCreator)

第一步:定义接口,在接口中声明几个方法

package demo17;/** * Created by mycom on 2018/3/8. */public interface ISomeService {    public void select();    public void insert();    public void delete();    public void update();}

第二步:编写实现类,重写接口中的方法

package demo17;/** * Created by mycom on 2018/3/8. */public class SomeServiceImpl implements ISomeService {    public void select() {        System.out.println("select  ok!");    }    public void insert() {    }    public void delete() {    }    public void update() {    }}

第三步:写一个前置增强

package demo17;import org.springframework.aop.MethodBeforeAdvice;import java.lang.reflect.Method;/** * Created by mycom on 2018/3/12. */public class BeforeAdvice implements MethodBeforeAdvice {    public void before(Method method, Object[] args, Object target) throws Throwable {        System.out.println("before=======");    }}

第四步:配置xml文件

最后一步:编写测试方法,进行单测

//默认自动代理    @Test    public void t1() {        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContextauto01.xml");        ISomeService service =(ISomeService) context.getBean("service");        service.select();    }

运行结果如下:

第二种:名称自动代理生成器(BeanNameAutoProxyCreator)

步骤和上述的一样,在这里我就直接用上一种的接口和实现类了,xml中的配置有所不同

这里我有创建了一个接口和实现类,如果要配置多个对象,应该怎么配?

新创建的接口和实体类

package demo17;/** * Created by mycom on 2018/3/12. */public interface IBookService {    public void select();}
package demo17;/** * Created by mycom on 2018/3/12. */public class BookServiceImpl implements IBookService {    public void select() {        System.out.println("Book select");    }}

配置文件中

编写测试类

//名称自动代理    @Test    public void t2() {        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContextauto02.xml");        ISomeService service =(ISomeService) context.getBean("service");        service.select();        IBookService bookService =(IBookService) context.getBean("bookService");        bookService.select();    }

运行结果

 

转载于:https://www.cnblogs.com/my-123/p/8552125.html

你可能感兴趣的文章
移除“xmlns”命名空间
查看>>
CSS九宫格带边框的多种实现
查看>>
学习小记
查看>>
源代码分享网站
查看>>
Codeforces Round #556 (Div. 2) C. Prefix Sum Primes
查看>>
Ubuntu亮度无法调节或调节无法保存的问题
查看>>
mysql语句优化总结(一)
查看>>
嵌入式开发应该掌握的一些Linux命令
查看>>
MySQL的查询,子查询,联结查询,联合查询
查看>>
跨浏览器注册事件和移除事件方案
查看>>
Android-Activity的切换效果
查看>>
[USACO 1.2.1]挤牛奶 (快排)
查看>>
信息系统规划(Information System Planning, ISP)
查看>>
xubuntu sublime 输入中文
查看>>
BICEP单元测试计划——四则运算Ⅱ
查看>>
金融的本质是什么?终于有人讲清楚了!(源于网络)
查看>>
Oracle 数据库名、实例名、Oracle_SID
查看>>
MySQL5.7在Windows下的安装
查看>>
Android 几个Info系列类的总结
查看>>
1010 Robot Motion
查看>>