2014-11-29 7 views
0

Spring MVC 초기화의 일부로 셋업 작업으로 한 번 액션 (타사 라이브러리에서 메소드를 호출)을 실행해야한다. 저는 Spring MVC 환경에서 web.xml이나 다른 것을 제어 할 수 없기 때문에 서블릿 컨텍스트 리스너 나 아무것도 추가 할 수 없습니다. 내가 WebApplicationInitializer의 구현을 시도했지만 결코 전화를하지 않는 것 같아 보이지 않는다.Spring MVC @Configuration 클래스 생성자

@Configuration 클래스에 주석을 추가하면 클래스 생성자를 사용하여 해당 셋업 작업 (타사 설정 메서드 호출)을 수행 할 수 있는지 궁금합니다. 이것이 적절하거나 안전한가? 이런 종류의 다른 대안이 있습니까? 나는 봄에 익숙하지 않기 때문에 이런 종류의 것을 의미하는 것을 놓칠 수도 있습니다.

감사합니다.

+0

당신은 당신의 *를 @ 구성 * 주석 클래스를 autowire *가의 @ * 초기화하기() 메소드를 선언하고 그 방법에 초기화 작업을 수행 할 수 있습니다. 귀하의 제 3 자 lib 봄 컨텍스트에서 비록 당신이 줄을 직면하는 문제가있을 것으로 보인다. – Angad

+0

콘솔에서 다음과 같은 경고 메시지가 나타납니다. 경고 : 실제 매개 변수가있는 메소드에 자동 연결 주석을 사용해야합니다. 'init' 메소드를 autowiring하는 것과 관련된 특정 문서가 있습니까? – chinabuffet

+0

왜 경고가 나오는지 잘 모르겠지만, 확실히 Bohuslav의 솔루션을 구현합니다. – Angad

답변

1

구성 클래스는 일부 초기화 논리를 포함 할 수있는 적절한 장소입니다. 예를 들어 InitializingBean 인터페이스를 구현하는 경우 @PostConstruct 또는 afterPropertiesSet() 메서드가 주석 된 메서드에서 생성자를 배치 할 수 있습니다. 차이점은 구성 클래스의 Bean이 인스턴스화되기 전에 생성자 코드가 호출된다는 것입니다. 따라서 초기화 코드가 일부 Spring Bean에 종속되는 경우 @PostConstruct/InitializingBean 접근 방식으로 이동하십시오.

예 :

@Configuration 
public class Config { 
    @PostConstruct 
    public void initialize() { 
     // Run some action 
    } 
} 
관련 문제