[Spring] - Spring에서 Proxy 타입으로 생성된 Bean을 사용할 때 주의점 (feat. @Repository)
Spring에서는 @Component(@Controller, @Service, @Repository)을 이용하여 Bean을 생성할 수 있는데 이때 해당 클래스 내부의 메서드에 Proxy 기반으로 동작하는 어노테이션이 존재할 경우 target class 타입의 Bean이 아닌 Proxy로 래핑된 Bean이 생성된다. @Transactional, @Async, @Cacheable 등 이런 어노테이션들은 런타임 시 target class를 Proxy가 래핑하여 로직을 처리하는데 사용 시 주의할 점이 있다. 한번 살펴보자 Proxy Bean 생성 @Service 어노테이션으로 Bean을 생성 후 @Async 어노테이션으로 Future타입의 결과값을 반환하는 메서드를 선언하였다. 그리고 외부에서 접근이 가능한 S..
Spring
2021. 12. 30. 07:24