我需要用spring整合struts。基本上我想在我的动作类中从Spring容器中获取bean。如果我想在我的动作类中获得任何dao / helper类,我应该用Spring获取它。我正在阅读一本书,上面写着使用WebApplicationContext在我的动作类中获取bean。
我的问题是我们在操作类中使用简单的XMLBeanFactory或ClassPathXmlApplicationContext(使用getBeanMethod)而不是WebApplicationContext。 (因为WebApplicationContext只有一个额外的方法,即getServletContext(),在获取任何模型Bean的过程中我们不需要它。)
我在同一个应用程序中的第二个问题是,如果我们想要在businesshelper.java中获取任何其他bean,我应该使用WebApplicationContext或ApplicationContext的任何其他子类(如ClassPathXmlApplicationContext)
答案 0 :(得分:0)
如果您在Web应用程序中使用Spring,WebApplicationContext
绝对是一种方法。它不仅可以为您处理启动和关闭,还可以很好地与servlet环境集成。即它会自动在org.springframework.web.context.WebApplicationContext.ROOT
键下的ServletContext中注册。
我之所以提到这一点,是因为Struts可能会使用它来定位应用程序的Web应用程序上下文。否则Struts会怎么知道这个?
关于你的第二个问题:真的去WebApplicationContext
。然后,您可以(作为最后的手段)使用WebApplicationContextUtils.getRequiredWebApplicationContext()
来获取bean。
ClassPathXmlApplicationContext
可能仅在进行桌面开发或沙箱/教程项目时有用。