2013-04-19 4 views
0

웹 응용 프로그램에서 작업 중이며 Spring MVC를 사용하고 있습니다. 하나의 서블릿이 있습니다. 그래서 내가 옳다면, 그 서블릿에 대한 하나의 루트 애플리케이션 컨텍스트와 추가 애플리케이션 컨텍스트를 가지고 있다고 가정합니다. 서블릿 응용 프로그램 컨텍스트의 Bean은 루트 응용 프로그램 컨텍스트의 Bean에 액세스 할 수 있습니다. 그러나 응용 프로그램이 시작되었다고 가정하고 루트 응용 프로그램 컨텍스트에 콩을 추가하려면 어떻게해야합니까? 기본적으로 "additional-beans.xml"에 일부 빈 설정이 있습니다. 나는 그것들을 루트 어플리케이션 컨텍스트에 추가하려고하지만 init 시점에는 추가하지 않으려하지만, 웹 앱이 시작된 후 얼마 동안은 추가하려고합니다. 그렇게하는 방법?스프링 MVC 컨텍스트 : 루트 응용 프로그램 컨텍스트에 beans 추가

AbstractApplicationContext rootContext = new ClassPathXmlApplicationContext(new String[]{"additional-beans.xml"}); 

내 컨트롤러 중 하나가 루트 응용 프로그램 컨텍스트에 추가 빈을 추가하지 않는 것 같습니다. 그렇다면 어디서 추가됩니까? 심지어 가능할까요? 감사합니다)

+0

을 사용하는 것입니다 문맥? –

답변

0

당신은 게으른 초기화 콩

<bean id="myBean" class="net.spring.ioc.MyBean" 
     lazy-init="true" /> 

PS를 사용할 수 있습니다 : 내 제안을 당신이 루트에 그 콩을 추가 연기 할 왜 WebApplicationContext

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value> 
    </context-param> 

    <listener> 
     <listener-class> 
         org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
    </listener> 

http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/

+0

감사합니다.)하지만 그렇게 할 수는 없습니다. additional-beans.xml이 시작된 후에 변경 될 수 있습니다. 그래서 파일의 내용을 변경하고 프로그래밍 방식으로로드하고 싶습니다. –

+0

아마도 이것이 도움이 될 것입니다. http://stackoverflow.com/questions/797894/dynamically-change-spring-beans –

관련 문제