zoukankan      html  css  js  c++  java
  • 使用SMM框架开发企业级应用-----顾问(Advisor)与 正则表达式做顾问

    通知(Advice)是Spring提供的一种切面(Aspect)。但其功能过于简单:只能将切面织入到目标类的所有目标方法中,无法完成将切面织入到指定目标方法中。

    顾问(Advisor)是Spring提供的另一种切面。其可以完成更为复杂的切面织入功能。PointcutAdvisor是顾问的一种,可以指定具体的切入点。顾问将通知进行了包装,会根据不同的通知类型,在不同的时间点,将切面织入到不同的切入点。

    PointcutAdvisor接口有两个较为常用的实现类:

    NameMatchMethodPointcutAdvisor名称匹配方法切入点顾问

    RegexpMethodPointcutAdvisor正则表达式匹配方法切入点顾问

    一、名称匹配方法切入点顾问

    NameMatchMethodPointcutAdvisor,即名称匹配方法切入点顾问。容器可根据配置文件中指定的方法名来设置切入点。

    代码不用修改,只在配置文件中注册一个顾问,然后使用通知属性advice与切入点的方法名mappedName对其进行配置。代理中的切面,使用这个顾问即可

    1、方法实体类

    2、实现实体类

     

    3、继承 MethodBeforeAdvice, AfterReturningAdvice 实现 afterReturning(前置) 和 before(后置)

     4、编写applictionContext.xml、bean标签

     5、测试类

     6、结果

    二、正则顾问(Advisor)

    RegexpMethodPointcutAdvisor,即正则表达式方法顾问。容器可根据正则表达式来设置切入点。

    注意,与正则表达式进行匹配的对象是接口中的方法名,而非目标类(接口的实现类)的方法名。

    就是方法的全名,比如com.lmm.aop10.SomeServiceImpl.doFirst,而不是匹配doFirst

    1、方法实体类

    2、实现实体类

     

    3、继承 MethodBeforeAdvice, AfterReturningAdvice 实现 afterReturning(前置) 和 before(后置)

     4、编写applictionContext.xml、bean标签

     结果

  • 相关阅读:
    使用postman时请求参数中包含特殊字符问题,如加号传到后台变成空格
    okhttp3报错:java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
    Eclipse的知识积累
    partition 取数据中相同字段数据中取时间最大的一个值 并只保留一条
    理解Session缓存机制 操纵持久化对象
    Hibernate的检索策略
    LINQ介绍
    .Net 一对一的双向关联Map写法
    Hibernate多态查询
    NHibernate实战[转 2012 gogogo]
  • 原文地址:https://www.cnblogs.com/haohanwuyin/p/11771635.html
Copyright © 2011-2022 走看看