Why does self-invocation bypass @Transactional in Spring Boot, even when using CGLIB proxies?
22:27 09 Jan 2026

In a Spring Boot application, a @Transactional method is called from another method within the same bean (self-invocation). Even with CGLIB proxying enabled, the transaction is not applied. How does Spring’s proxy-based AOP implementation cause this behavior internally, and what design choices in the framework prevent transaction interception in this case?

java spring spring-boot