In Spring you can't simply call @Transactional method from the same instance, because of AOP-proxy thing. Would it be nice idea to make a self injection and call that method from self proxy instance? Do you see any drawbacks?
15
votes
1 Answers
15
votes
It is totally ok.
Moreover there was a Jira ticket for supporting this feature using @Autowired annotations. It's fixed in Spring 4.3+ versions. However for xml-based configuration or using @Resource annotation it's working in the earlier versions.
You can see the discussion bellow this ticket. @Transactional is one of the use case for this:
Particularly interested in @Async and @Transactional use cases.
<aop:aspectj-autoproxy expose-proxy="true"/>or@EnableAspectJAutoProxy(exposeProxy = true), see SPR-10454 and JavaDoc. - kriegaex