zoukankan      html  css  js  c++  java
  • aop point-cut表达式

    好多博客写的云里雾里,大多都有一点毛病。大家还是以官网为准

    @官网文档

    官网截图

    modifiers-pattern:修饰符

    ret-type-pattern:方法返回类型

    declaring-type-pattern:指定方法所属的类

    name-pattern:方法名

    param-pattern:参数列表

    throws-pattern:抛出的异常

     

    All parts except the returning type pattern (ret-type-pattern in the preceding snippet), the name pattern, and the parameters pattern are optional.

    除ret-type-pattern、 name pattern、param-pattern外都是可选参数

    The returning type pattern determines what the return type of the method must be in order for a join point to be matched. * is most frequently used as the returning type pattern.It matches any return type. A fully-qualified type name matches only when the method returns the given type. 

    ret-type-pattern决定方法必须要返回的类型。*最常用,匹配任何返回类型。方法返回类型必须与完全限定类型名匹配

    The name pattern matches the method name.You can use the *wildcard as all or part of a name pattern.

    name pattern匹配方法名称。可以用通配符*作为全部或部分name pattern.

     If you specify a declaring type pattern, include a trailing . to join it to the name pattern component.

    如果你声明一个declaring-type-pattern,为了连接 name pattern应该加上“.”,即declaring-type-pattern.name-patterm

    The parameters pattern is slightly more complex: () matches a method that takes no parameters, whereas (..) matches any number (zero or more) of parameters. The (*) pattern matches a method that takes one parameter of any type. (*,String) matches a method that takes two parameters. The first can be of any type, while the second must be a String

    参数格式parameters pattern稍微复杂一点,

    ()匹配无参方法。

    而(..)匹配任何数量(0个或多个)参数。

    (*)匹配任何类型的一个参数

    (*,string)匹配两个参数,前面是任何类型,第二个必须是字符串

    • The execution of any public method:

      execution(public * *(..))
    • The execution of any method with a name that begins with set:

      execution(* set*(..))
    • The execution of any method defined by the AccountService interface:

      execution(* com.xyz.service.AccountService.*(..))
    • The execution of any method defined in the service package:

      execution(* com.xyz.service.*.*(..))
    • The execution of any method defined in the service package or one of its sub-packages:service 包和其子包(任意层?)下的所有方法

      execution(* com.xyz.service..*.*(..))
    • Any join point (method execution only in Spring AOP) within the service package:

      within(com.xyz.service.*)
    • Any join point (method execution only in Spring AOP) within the service package or one of its sub-packages:

      within(com.xyz.service..*)
    • Any join point (method execution only in Spring AOP) where the proxy implements the AccountService interface:

      this(com.xyz.service.AccountService)
  • 相关阅读:
    apache配置域名子目录,访问不同子项目
    win10系统,vbox下安装centos6/7,挂载实现目录共享
    Laravel移除Cache-Control
    Laravel 5.8 添加服务层
    Laravel 不同环境加载不同的.env文件
    Box 'laravel/homestead' could not be found.
    vagrant网站中box下载方法
    移动端,fixed bottom问题
    css正則匹配、模糊匹配
    一台电脑同时添加git和bitbucket两个网站的ssh key
  • 原文地址:https://www.cnblogs.com/yanan7890/p/10570584.html
Copyright © 2011-2022 走看看