要进行AOP编程,首先我们要在spring的配置文件中引入aop命名空间(约束):
| 
          
          
          
          
          
          
          
          
          
          
          
          
          
          | 
Spring提供了两种切面声明方式,实际工作中我们可以选用其中一种:
    •        基于
    
     XML配置方式
    
    声明切面。
   
• 基于注解方式声明切面。
    这里我先演示
    
     
      
       XML配置
      
      方式
     
    
    声明切面
   
首先你要了解切入点表达式。这里是几种常用表达式:
下面方法中的..表示:可以包含参数
l execution(* com.yunlian.service.UserService.add(..))某个类下面的add方法
l execution(* com.yunlian.service.UserService.*(..))—某个类的所有方法
l execution(* com.yunlian.service.*.*(..))—service包下面的所有类的所有方法
l execution(* *.*(..))—所有类中的所有方法
一:先创建如下的包结构和配置文件
    
    
   
    
     第一步:建立UserServiceImpl.java类
    
   
     
      第二步:建立切面
     
    
      建立封装横切关注点的切面
      
       MyAspectXML.java
      
      
       类:
      
     
    
    
   
     
      第三步:spring-config.xml配置文件
     
    
第四步:测试类
    
     注解方式
    
   
    
     第一步:开启注解
    
   
在spring配置文件中开启AOP注解:
     
      <aop:aspectj-autoproxy/>
     
    
     
      
      
     
    
    
     第二步:为切面加注解:
    
   
为切面类MyAspectAnno加一个注解:@Aspect
     
      第三步:在横切关注点上加注解
     
    
在横切关注点上加上对应通知类型的注解,如:
前置通知:@Before、后置通知:@After等。
   
   
    
   
第四步:测试
    
    
   
注意:1.在注解情况下,如果环绕通知和异常通知同事存在时,异常通知会失效
    2.在注解模式中,不仅需要在切面类上使用@Aspect注解,也需要在spring的配置文件中配置切面的bean(或者通过注解的方式创建切面的bean)
    
     我们这里使用的注解方式创建bean .
    
    
     @Aspect注解不是产生bean的,只是用来告诉spring有该注解的类是切面类。
    
    
   
 
