spring AOP

2021-04-11 08:29

阅读:542

标签:好的   dep   exe   point   http   print   ble   引用   www   

1. 什么是AOP

2. 导入依赖

导入AOP织入包

1  dependency>
2             groupId>org.aspectjgroupId>
3             artifactId>aspectjweaverartifactId>
4             version>1.9.4version>
5         dependency>

3.spring AOP的简单实现(方法一:使用spring API接口)

1.接口

1 public interface UserService {
2     public void add();
3     public void delete();
4     public void update();
5     public void select();
6 }

2.实现类

 1 public class UserServiceImpl implements UserService {
 2     public void add() {
 3         System.out.println("执行了添加方法");
 4     }
 5 
 6     public void delete() {
 7         System.out.println("执行了删除方法");
 8     }
 9 
10     public void update() {
11         System.out.println("执行了更新方法");
12     }
13 
14     public void select() {
15         System.out.println("执行了查询方法");
16     }
17 }

3.添加日志

Log日志:MethodBeforeAdvice为前置通知,连接点为方法前

重写before方法

1 //method:要执行的目标对象的方法
2 //objects:参数 args
3 //o:目标对象  target
4 public class Log implements MethodBeforeAdvice {
5     public void before(Method method, Object[] objects, Object o) throws Throwable {
6         System.out.println(o.getClass().getName()+"方法");
7     }
8 }

AfterLog日志:AfterReturningAdvice为后置通知,连接点为方法后

1 //o:返回值
2 public class AfterLog implements AfterReturningAdvice {
3     public void afterReturning(Object o, Method method, Object[] objects, Object o1) throws Throwable {
4         System.out.println("执行的方法为"+method.getName()+"返回值为"+o);
5     }
6

4.配置

创建applicationContext.xml配置文件

具体步骤:1.注册bean,注册接口的实现类和需要添加的Log日志方法,格式为:

        2.配置aop,配置aop时需要导入aop约束

     3.配置aop切入点,切入点为接口的实现类

     4.配置环绕通知,环绕通知的ref为需要添加的Log日志

 1  2  3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4        xmlns:aop="http://www.springframework.org/schema/aop"
 5        xsi:schemaLocation="http://www.springframework.org/schema/beans
 6            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 7            http://www.springframework.org/schema/aop
 8            http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
 9            ">
10     
11     class="com.dz.serviceImpl.UserServiceImpl">12     class="com.dz.log.Log">13     class="com.dz.log.AfterLog">14     
15     
16     
17         
18         
19 
20         
21         
22         
23     
24 
25 

5.测试

    1.首先添加配置好的applicationContext.xml配置文件

    2.动态代理的是接口,配置文件获取的bean为接口的实现类的

1 public class MyTest {
2     public static void main(String[] args) {
3         ClassPathXmlApplicationContext Context = new ClassPathXmlApplicationContext("applicationContext.xml");
4         //动态代理的是接口
5         UserService userService =(UserService) Context.getBean("UserServiceImpl");
6         userService.add();
7     }
8 }

4. spring AOP的简单实现(方法二:使用自定义类)

1. 创建自定义类,定义方法

1 public class DiyPiontCut {
2     public void before(){
3         System.out.println("执行了Before方法");
4     }
5     public void after(){
6         System.out.println("执行了after方法");
7     }
8 }

 

2. applicationContext.xml配置文件

  注册bean为自定义类,自定义切面,ref引用的是注册的bean

  创建切入点,切入点为接口的实现类

  创建通知,通知使用的方法为自定义类定义的方法,切入点为aop创建的切入点

 1  
 2     class="com.dz.diy.DiyPiontCut"> 3     
 4         
 5         
 6         
 7         
 8         
 9             
10             
11         
12     

 

spring AOP

标签:好的   dep   exe   point   http   print   ble   引用   www   

原文地址:https://www.cnblogs.com/lxzlovewyq/p/13359992.html


评论


亲,登录后才可以留言!