而切入点则应用于bean函数和所有get/set属性方法



我有一个Spring AOP切入点execution(* someService.*(..))

这个切入点是否匹配构造函数和bean的get/set属性方法?

这不是我的本意,而且这种行为可能会影响性能。

我只是想建议真正的服务方法,如getUserByID等。

如何排除这些方法(get/set/constructor)?

该切入点将匹配Spring AOP中的公共方法。所以是getter和setter,而不是构造函数。

这里有Spring参考。第8.2.3节,寻找"均匀构造函数"

只引用一组方法的干净方法是将切入点应用于由服务实现的接口,而不是应用于服务本身。这假定您的接口只包含您想要通知的业务方法。

如果它是第三方库,并且由于某种原因不想使用标记接口,则可以始终基于方法的命名约定。例如,这只对getter应用aspect:

execution(* someService.get*(..))

这个表达式将方面应用于getter和setter:

execution(* someService.get*(..)) && execution(* someService.set*(..))

最新更新