我是春天新手,我目前正在使用ClassPathXmlApplicationContext
到控制器类内的getBean
。这是一个小例子应用程序
我正在建设。但我想要做的就是移动它
ClassPathXmlApplicationContext
到一个新类并在应用程序中保持静态。所以我可以打电话
newclass在构造函数中调用DAO。
我尝试了一些事情,但我一直都遇到NestedServletException
错误。
请建议我编写一个新的数据连接类的方法 在我的应用程序中保持相同的状态,即我可以在每个内部调用 控制器类,而不是每次都在构造函数中创建DAO对象。
感谢任何帮助,建议。
感谢 沃克
答案 0 :(得分:2)
正如我从异常名称中假设的那样,您正在谈论Web应用程序。在这种情况下,您无需创建应用程序上下文。 Spring有其内置机制。例如,使用监听器(在web.xml
)
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
因此所有的bean都会在春天自动连接(当然,如果配置正确)。
您仍然可以通过实施ApplicationContextAware
或通过callign WebApplicationContextUtils.getRequiredWebApplicationContext()
来获取上下文,但在一般情况下您不需要这样做。
您不应手动使用应用程序上下文。相反,spring使用dependency injection连接您的应用程序,并且所有对象(控制器,daos等)都具有相关性,而无需在某些上下文中“覆盖”它们。