SSH的整合,Spring3.1 & Hibernate3.6 & Struts2.2
期末了,这几天没什么事情基本就是在宿舍看书,打怪升级。明年就要去上班了,总觉得自己很多地方还是一知半解。努力的过程蛋疼兼寂寞。
SSH框架的配置在网上有很多的实例,不过jar包的版本控制起来的确麻烦。特别是新版本出来,有些jar文件合并了,有些则分开了。对老鸟来说当然是小菜。不过对我这种初学者确实入门的第一道坎儿,计算机科学笔记是门实践科学。环境都搭配不起来,后面的工作也无从谈起。
Spring3.1&Hibernate3.6&Struts2.2
首先是引进jar文件:
a开头的jar
c开头的jar
d-m开头的jar
o开头的jar
s-x开头的jar
新版本的Hibernate已经将Annotation整合到了Hibernate3.jar里面,而原本Spring2.5.6中提供的Spring.jar又被拆分成多个包。
上面的包是在查阅了网上的一些问答,并结合自己机器上运行出现的问题一点一点添加上去。感觉还是有一些jar是多余的,希望有了解的朋友能帮忙指出。
接下来是配置文件的基本设置:
Web.xml:1.<!-- 配置Spring的监听器,将web工程纳入到Spring容器的管理中 --> 2.<!-- 3. 默认的spring配置文件寻找路径是 /WEB-INF/applicationContext.xml 4. 也可以通过下面的方式将只定位到classpath[即src包下]的beans.xml 5. <context-param> 6. <param-name>contextConfigLocation</param-name> 7. <param-value>classpath:beans.xml</param-value> 8. </context-param> 9.--> 10.<listener> 11. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 12.</listener> 13.<!-- Struts2的过滤器,接管web的请求并负责相应 --> 14.<filter> 15. <filter-name>struts2</filter-name> 16. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 17.</filter> 18. <filter-mapping> 19. <filter-name>struts2</filter-name> 20. <url-pattern>/*</url-pattern> 21. <dispatcher>FORWARD</dispatcher> 22. <dispatcher>REQUEST</dispatcher> 23. </filter-mapping>
这边就采用默认是applicationContext.xml
在里面配置dataSourcesessionFactoryadvicetransaction等具体的可以参考Spring3的文档。
struts.xml的配置:1.<!--需要在定义action之前添加--> 2. <constant name="struts.objectFactory" value="spring"/> 3. <package name="default" namespace="/" extends="struts-default">
主要是前一句,将原本有Struts2自己管理的对象工厂[产生action对象]交给spring容器进行管理。 在配置action的时候可以使用
1.<action name="yourActionName" class="youDefineInSpringContainer'sAction'Id"> 2.<result name="success">/XX.jsp</result> 3.</action>
上面的youDefineInSpringContainer'sAction'Id就是在spring的配置文件applicationContext.xml中你定义交给spring进行管理的Action处理Bean。
整个过程基本就是这样了。