Transactional1 [Spring] MVC Controller 클래스에서 @Transactional을 사용할 수 있는가? Controller단에 @Transactional을 설정한 후에 rollback테스트를 해봤는데 되지 않았다. 그래서 그냥 Controller단에서는 @Transactional이 안되는구나 하고 Service 클래스에서 트랜잭션이 필요한 로직을 짰었다. 근데 똑같은 상황을 최근에 겪었는데 또 찾고 있었던 내 모습을 보고 원인파악을 시작했다. Controller단에서 @Transactional이 안먹히는 이유는 Spring AOP때문이다. Spring AOP는 기본적으로 다이내믹 프록시 기법을 사용하는데 이 프록시를 적용하려면 인터페이스가 필요하다. 일반적으로 Controller는 인터페이스가 없기때문에 적용되지 않았던 것이다. 만약 Controller에서 적용하고 싶으면 클래스 프록시 모드를 사용하면된다.. Web 2021. 3. 22. 이전 1 다음