【问题标题】:Spring MVC contexts: adding beans to root application contextSpring MVC 上下文:将 bean 添加到根应用程序上下文
【发布时间】:2013-04-12 11:23:19
【问题描述】:

我正在开发 Web 应用程序,我使用 Spring MVC。它有一个 servlet。因此,如果我是对的,它应该有一个根应用程序上下文和该 servlet 的附加应用程序上下文。 servlet 应用程序上下文中的 bean 可以访问根应用程序上下文中的 bean。但是,假设应用程序已启动,并且我想将一些 bean 添加到根应用程序上下文中,我应该如何进行?基本上,我在“additional-beans.xml”中有一些 bean 配置。我想将它们添加到根应用程序上下文中,但不是在初始化点,而是在 Web 应用程序启动后的一段时间。怎么做?好像在做类似的事情

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

使用我的一个控制器不会向根应用程序上下文添加额外的 bean。但是,它们在哪里添加?甚至可能吗?谢谢)

【问题讨论】:

  • 为什么要延迟将这些 bean 添加到根上下文?

标签: spring spring-mvc applicationcontext


【解决方案1】:

你可以使用惰性初始化 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/

【讨论】:

  • 谢谢)但我不能那样做。 additional-beans.xml 可能会在启动后更改。所以我想更改文件的内容,然后以编程方式加载它
猜你喜欢
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 2011-05-31
  • 2017-08-18
相关资源
最近更新 更多