spring-AOP

来源:互联网 发布:公司的网络架构 编辑:程序博客网 时间:2024/06/14 03:06

本次要讲解的是spring中的AOP,面向切面编程,主要提供5种增强功能,下面介绍前置增强和后置增强两种。

首先是前置增强,作用是当我们完成一项工作之后希望自动完成另外一件功能。比如说当员工在工作的时候,摄像头已经自动完成了记录工作状态的功能。

1、  创建一个员工类,其中包含工作的方法,写法如下:

spring-AOP


2、  再单独创建一个包,里面加advice的增强类,写法如下:

spring-AOP

3、  注入增强对象、注入目标对象、注入代理对象并设置对应目标及增强功能:

spring-AOP

4、  编写测试类:

spring-AOP

5、  结果:

spring-AOP

1.      有时候我们并不是所有的方法都需要进行后知增强,比如假设员工下班,摄像头就不需要记录,这时可以使用正则式匹配。

2.      首先在员工类中添加一个方法,表示员工下班。

3.      在配置文件中注入一个正则匹配方法的对象:

spring-AOP

修改代理里面的拦截器名称:

spring-AOP

1、  前置增强,先采用注解的方式添加一个前置增强的类,注意光标处的括号不能省,此处省略offduty的下班方法:

spring-AOP

2.开启自动代理,注意引入AOP

 spring-AOP

4.      注入前置对象和目标对象:

spring-AOP

5.      编写测试类:

spring-AOP

6:结果:

spring-AOP

1.      实际应用中,我们一般在application中注入dao层和Services层数据。首先dao层处理数据库中的数据,作用不变。

spring-AOP

2.一般会在Services层定义一个私有的dao层对象,然后进行封装。

spring-AOP

spring-AOP

3、最后在applicationcontext配置文件注入dao层和Services层,此处也有两种方法使Services层调用dao层方法,第一种是直接在Services的注入中添加一个引用dao对象的属性即可:

spring-AOP

第二种是把上面的属性删掉,在最前面的xsi:schemaLocation属性中添加一个下图中的属性:

spring-AOP

Bytypebyname都可以,具体的区别记不太清了。

6.      最后写一个测试类:

spring-AOP

结果就是先调用DAO层方法,然后调用Services层方法。

原创粉丝点击