2011-07-06 7 views
1

여러 컨트롤러에서 싱글 톤 리소스를 사용하는 방법이 있습니까?Java에서 여러 MVC 컨트롤러가 공유하는 싱글 톤 리소스

하나의 servlet.xml & two-servlet.xml과 lib-context.xml에 singleton bean "util"이있는 두 개의 서블릿이 있습니다.

이제 lib-context.xml을 위의 두 서블릿 컨텍스트로 가져 오면 Spring은 각 서블릿에 대한 별도의 응용 프로그램 컨텍스트를 만들고 두 개의 singletone 객체로 끝나게됩니다.

하나의 싱글 톤 객체 만 생성되는 응용 프로그램을 구성하는 방법이 있습니까?

답변

1

예. web.xml에서 DispatcherServlet을로드하는 대신 lib-context.xmlContextLoaderListener을로드하십시오.

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     classpath:/lib-context.xml 
    </param-value> 
</context-param> 
<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 

서블릿 별 앱 컨텍스트 구성 파일에서 가져 오기를 제거 할 수 있습니다.

모든 DispatcherServlet에는 위의 공유 된 lib-context.xml뿐만 아니라로드되는 모든 컨텍스트가 표시됩니다.

(예 : 내가 준 예를 조정해야 할 수도 있습니다.)이 경로는 예제 일뿐입니다.