在Spring框架中的后台JavaBean一般都受Spring控制,例如Service、DAO等,我们在不受Spring控制的JavaBean中需要调用这些受控JavaBean的时候,比如要扩展一个系统地功能,我遇到的是扩展Struts2的一个标签类,需调用DAO,通常的方法可以使用ClassPathXmlApplicationContext或者其他的类来取得定义这些Bean的spring的xml文件,然后再生成Bean,但是,既然这些xml文件都已经在系统加载时已经加载,又没有直接的方法?
经过在论坛上讨教发现如下方法:
<p>@SuppressWarnings("unused") ServletContext servletContext = pageContext.getServletContext();
WebApplicationContext springCtx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
DictionarySelectTagDAO dictDAO = (DictionarySelectTagDAO)springCtx.getBean("dictDAO");
List dlist = dictDAO.selectDictionaryList("Dict.select-all-user"); </p>
本文介绍了一种在Struts2标签扩展中整合Spring框架的方法,通过使用WebApplicationContextUtils获取Spring上下文,进而调用受Spring管理的JavaBean(如DAO),实现了功能扩展的需求。
776

被折叠的 条评论
为什么被折叠?



