不使用web.xml加载应用程序上下文

时间:2010-11-11 09:28:52

标签: java spring spring-mvc

我想知道是否有一种方法可以加载弹簧应用程序上下文而无需在 web.xml 中定义它。

我看到你可以使用:

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

但是如果你想使用bean,你必须 getBean()才能访问它。我想可能有一种方法可以像web xml中的定义那样以编程方式加载上下文,而不必调用getBean。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用:

ctx.getAutowireCapableBeanFactory().autowireBeanProperties(this,
                  AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true);        

...其中ctx是你的ClassPathXmlApplicationContext,以避免需要调用getBean() - this上的任何spring bean字段都将自动为你服务。

答案 1 :(得分:0)

有一种方法。你只需要阅读官方文档。相关部分为here

修改:抱歉,误读了您的问题。你可以使用

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

并在应用程序启动时使用ServletContextListener加载它。当您的应用程序启动时,如果您已正确配置bean连接,则不必调用 getBean()来访问所有bean。像使用Java SE一样对待它。