[英]Spring declarative transaction semantics by method name of subclasses
我正在嘗試在Spring Boot應用程序中基於方法名稱實現不同的事務語義。 至於我可以告訴我有如圖所示,通過XML做到這一點在這里 。 那不是理想的,但是很好。
我遇到的問題是匹配BaseService子類上的所有公共方法。 我已經看到了完整的AspectJ的示例,但是在Spring aop中:東西似乎不起作用。
<aop:config>
<aop:pointcut id="services" expression="execution(public ppi.nestup.v3.service.BaseService+.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="services"/>
</aop:config>
它不喜歡aop:pointcut表達式。 錯誤是
java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting 'name pattern' at character position 51
execution(public ppi.nestup.v3.service.BaseService+.*(..)
如果有一種方法可以通過注釋或Java配置來做得更好,但是我不確定如何通過AspectJ切入點連接到Spring事務支持中。
我建議您閱讀AspectJ教程或Spring AOP手冊以學習語法。
BaseService
實例的公共方法。 您可能真正想要的是
execution(public * ppi.nestup.v3.service.BaseService+.*(..))
和BTW,你不需要使用XML配置,你可以在注釋風格通過聲明你的方面@Aspect
, @Pointcut
, @Before
, @Around
左右了。
這是一個錯字。 應該是:
<aop:pointcut id="services" expression="execution(public ppi.nestup.v3.service.BaseService+ *(..))"/>
但是它似乎仍然沒有匹配任何方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.