문서의 이전 판입니다!
Java Config용 클래스에 @Configuration
을 붙이지 않으면 @Bean
애노테이션된 메소드에 의한 객체 생성시 싱글턴이 보장되지 않는다.
Bean에 주입할 객체를 @Bean
으로 생성하지 않고 바로 new로 생성하여 주입하면 Spring의 InitializingBean과 같은 인터페이스를 구현한 것이 정상적으로 호출되지 않아 문제가 될 수 있다.
예)
// WebMVC의 코드 중 일부 // 아래 코드에서 openEntityManagerInViewIterceptor는 BeanFactoryAware 인터페이스를 구현하고 있지만 // 해당 기능이 제대로 작동하지 않게 된다. OpenEntityManagerInViewInterceptor openEntityManagerInView = new OpenEntityManagerInViewInterceptor(); openEntityManagerInView.setEntityManagerFactory(entityManagerFactory); // ApplicationContext를 주입받아서 OEMIV 객체에 직접 주있해줬음. // 가장 좋은 것은 OEMIV를 직접 빈(''@Bean'')으로 생성하는 것.
XxxJavaConfig
클래스와 YyyJavaConfig
가 서로가 생성하는 객체를 주입받으려고 하면 문제가 된다.
현재 확인된 바로는 무한 루프를 도는 듯한 상황이 연출되었다.
이런 상황은 만들지 말 것.