사용자 도구

사이트 도구


springframework:javaconfig

문서의 이전 판입니다!


Springframework Java Config

  • Spring 3.1 부터 본격적으로 도입됨.

주의할 점

Java Config 클래스는 무조건 @Configuration 애노테이션을 붙인다

Java Config용 클래스에 @Configuration을 붙이지 않으면 @Bean 애노테이션된 메소드에 의한 객체 생성시 싱글턴이 보장되지 않는다.

Spring의 특정 인터페이스를 구현했을 경우 처리

Bean에 주입할 객체를 @Bean으로 생성하지 않고 바로 new로 생성하여 주입하면 Spring의 InitializingBean과 같은 인터페이스를 구현한 것이 정상적으로 호출되지 않아 문제가 될 수 있다.

예)

// WebMVC의 코드 중 일부
// 아래 코드에서 openEntityManagerInViewIterceptor는 BeanFactoryAware 인터페이스를 구현하고 있지만
// 해당 기능이 제대로 작동하지 않게 된다.
OpenEntityManagerInViewInterceptor openEntityManagerInView = new OpenEntityManagerInViewInterceptor();
openEntityManagerInView.setEntityManagerFactory(entityManagerFactory);
 
// ApplicationContext를 주입받아서 OEMIV 객체에 직접 주있해줬음.
// 가장 좋은 것은 OEMIV를 직접 빈(''@Bean'')으로 생성하는 것.

Java Config간의 상호 의존

XxxJavaConfig 클래스와 YyyJavaConfig가 서로가 생성하는 객체를 주입받으려고 하면 문제가 된다. 현재 확인된 바로는 무한 루프를 도는 듯한 상황이 연출되었다. 이런 상황은 만들지 말 것.

springframework/javaconfig.1387255083.txt.gz · 마지막으로 수정됨: 2013/12/17 13:38 저자 kwon37xi