spring - AOP 切入点的表达式的种类

# spring-aop 切入点

spring-aop的切入点可以分为五种:分别是executiontargetthiswithinargs表达式。以下分别说明了:

第一种:execution表达式

      1.基本的格式:@Pointcut("execution( 返回值类型 包名.类名.方法名( 参数类型) )")

       比如下面的例子:

     1.  定义一个接口:

      package com.Aop.Expression;

      public interface PersonDao {//定义了一个接口

      //测试这个execution aop experssion
       public void personsay();

     }


   2.实现接口

   package com.Aop.Expression;

   public class PersonDaoImpl implements PersonDao {//实现了PersonDao接口方法

    @Override
    public void personsay() {
        System.out.println("execution experssion test......");

     }

   3.定义Aspect类

   @Aspect
   public class myAopExpression {

    @Pointcut("execution( * com.Aop.Expression.PersonDaoImpl.personsay())")  // 切入点
    public void init(){
        System.out.println("execution expression method success");
    }
    @Before("init()")
    public void before(){
        init();//在执行这个PersonDaoImpl这个类时,进行Before通知,这个也可以after,Around等,一样的做法
    }
 
}

   4. 配置文件主信息:

   
   

    

   5. 测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:myaop-pointCut-Expressions.xml")//加载配置文件
public class PersonDaoImplTest {
    /**
     * 一定要写成这个接口 的类名,进行自动注入
     */
    @Autowired
    PersonDao personImpl;
    
    @Test
    public void testPersonsay() {
       personImpl.personsay();

        
    }

}

结果:

  spring - AOP 切入点的表达式的种类_第1张图片


第二种:target表达式

第三种:this表达式

第四种:within表达式

第五种:args表达式 

你可能感兴趣的:(spring,AOP,切点,切点类型,切点实现案例)