javaspringspring-aopspring-transactions

Spring self injection for transactions


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?


Solution

  • 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.