Spring AOP表达式中访问修饰符的用途是什么?

时间:2012-08-06 03:03:20

标签: java spring spring-aop

来自Spring doc

  

6.2.3.4。示例

     

Spring AOP用户可能最常使用执行切入点指示符。执行的格式   表达式是:

     

执行( modifiers-pattern? ret-type-pattern   声明型模式?名称模式(PARAM图案)             抛出图案?)

我可以看到修饰符 - 模式?在哪里可以说公共,私人,受保护。在同一份文件中,它说:

  

6.2.3.1。支持的切入点指示符

     

由于Spring的AOP框架基于代理的特性,受保护的方法根本不是   拦截,既不是JDK代理(这不适用),也不是   对于CGLIB代理(这在技术上是可行的但不是   推荐用于AOP目的)。 因此,任何给定的切入点   将仅与公共方法匹配!

我很困惑,使用修饰符模式有什么意义?请举个例子?

2 个答案:

答案 0 :(得分:3)

使用访问修饰符没有意义。他们在那里,因为Spring使用AspectJ语法。完整的AspectJ AOP允许访问修饰符,因为它摆弄了字节码。

答案 1 :(得分:0)

您使用与切入点声明相关的访问修饰符,以控制切入点声明在应用程序中可见的位置。

Pointcut声明与常规Java方法具有相同的访问修饰符:

  
      
  1. public,切入点整理在整个应用程序方面都是可见的;
  2.   
  3. 默认(未指定修饰符),切入点声明对同一包中的所有其他方面可见;
  4.   
  5. 受保护,切入点扩展只对子方面可见;
  6.   
  7. 私有,切入点扩展仅在其声明的方面可见。
  8.