我是 spring 新手,目前正在使用 ClassPathXmlApplicationContext
到 Controller 类内的 getBean
。这是一个小示例应用程序
我正在 build 。但我想做的是移动这个
ClassPathXmlApplicationContext
到一个新类并使其在应用程序中保持静态。所以我可以打电话
newclass 调用构造函数内的 DAO。
我尝试了一些方法,但总是收到 NestedServletException
错误。
请建议我一种编写数据连接新类的方法,该类将 在我的应用程序中保持相同的状态,即我可以在每个内部调用 Controller 类,而不是每次都在构造函数中创建 DAO 对象。
感谢任何帮助、建议。
谢谢 沃克
最佳答案
正如我从异常名称中假设的那样,您正在谈论一个 Web 应用程序。在这种情况下,您无需创建应用程序上下文。 Spring有其内置的机制。例如,使用监听器(在 web.xml
中)
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
所以你所有的bean都会被spring自动连接(当然,如果配置正确的话)。
您仍然可以通过实现 ApplicationContextAware
或调用 WebApplicationContextUtils.getRequiredWebApplicationContext()
来获取上下文,但在一般情况下您不需要这样做。
您不应手动使用应用程序上下文。相反,Spring 使用 dependency injection 连接您的应用程序。并且您的所有对象( Controller 、daos 等)都有其依赖项,无需在某些上下文中“到达”它们。
关于java - 使用 ClassPathXmlApplicationContext 创建 Spring 数据连接类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2494785/