1

私は Web アプリに取り組んでおり、Spring MVC を使用しています。1 つのサーブレットがあります。したがって、私が正しければ、1 つのルート アプリケーション コンテキストと、そのサーブレット用の追加のアプリケーション コンテキストを持つことになっています。サーブレット アプリケーション コンテキストの Bean は、ルート アプリケーション コンテキストの Bean にアクセスできます。ただし、アプリが開始され、ルート アプリケーション コンテキストにいくつかの Bean を追加したいとします。どのように進めればよいでしょうか? 基本的に、「additional-beans.xml」にいくつかの Bean 構成があります。それらをルート アプリケーション コンテキストに追加したいのですが、初期化時点ではなく、Web アプリが開始されてからしばらくしてから追加したいと考えています。どうやってするか?のようなことをしているようです

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

私のコントローラーの1つを使用しても、ルートアプリケーションコンテキストに追加のBeanが追加されません。しかし、それでは、それらはどこに追加されますか? それは可能ですか?ありがとう)

4

1 に答える 1

0

Lazy init Bean を使用できます

<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/

于 2013-04-19T06:31:19.683 に答える