我有一个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*(..))