来自Spring doc:
6.2.3.4。示例
Spring AOP用户可能最常使用执行切入点指示符。执行的格式 表达式是:
执行( modifiers-pattern? ret-type-pattern 声明型模式?名称模式(PARAM图案) 抛出图案?)
我可以看到修饰符 - 模式?在哪里可以说公共,私人,受保护。在同一份文件中,它说:
6.2.3.1。支持的切入点指示符
由于Spring的AOP框架基于代理的特性,受保护的方法根本不是 拦截,既不是JDK代理(这不适用),也不是 对于CGLIB代理(这在技术上是可行的但不是 推荐用于AOP目的)。 因此,任何给定的切入点 将仅与公共方法匹配!
我很困惑,使用修饰符模式有什么意义?请举个例子?
答案 0 :(得分:3)
使用访问修饰符没有意义。他们在那里,因为Spring使用AspectJ语法。完整的AspectJ AOP允许访问修饰符,因为它摆弄了字节码。
答案 1 :(得分:0)
您使用与切入点声明相关的访问修饰符,以控制切入点声明在应用程序中可见的位置。
Pointcut声明与常规Java方法具有相同的访问修饰符:
- public,切入点整理在整个应用程序方面都是可见的;
- 默认(未指定修饰符),切入点声明对同一包中的所有其他方面可见;
- 受保护,切入点扩展只对子方面可见;
- 私有,切入点扩展仅在其声明的方面可见。
醇>