读书人

【Java EE】Struts2.1.6+Spring2.5.6+

发布时间: 2012-08-27 21:21:57 作者: rapoo

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 整合开发

本人采用的开发环境为MyEclipse6.6,数据库为MySQL,Web服务为Tomcat。
这三个框架的整合其实就是Struts2.1.6+Spring2.5.6的整合、Spring2.5.6+Hibernate3.3.1的整合。
(一)Struts2.1.6+Spring2.5.6的整合
???详见之前发表的文章【J2EE】Struts2.1.6与Spring2.5.6框架整合
(二)Spring2.5.6+Hibernate3.3.1的整合
1、引入Hibernate必需的jar包

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发hibernate3.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发antlr-2.7.6.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发commons-collections-3.1.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发dom4j-1.6.1.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发javassist-3.4.GA.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发jta-1.1.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发slf4j-api-1.5.2.jar

因为slf4j-api-1.5.2.jar只有接口,还需要其实现类,而Hibernate带有的jar包中并没有包含,所以还需自己到apache网站下载

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发slf4j-log4j12-1.5.2.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发log4j-1.2.14.jar

两个jar包,一个是其实现,log4j-1.2.14.jar是slf4j-log4j12-1.5.2.jar所需要用到的jar包
2、在web.xml中配置过滤器,让Spring为我们自动管理session,无需我们手动开、关Hibernate中的session

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<filter>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<filter-name>hibernateFilter</filter-name>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<filter-class>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????</filter-class>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</filter>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<filter-mapping>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<filter-name>hibernateFilter</filter-name>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<url-pattern>/*</url-pattern>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</filter-mapping>

3、在web.xml中配置过滤器,处理字符集编码

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<filter>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<filter-name>encodingFilter</filter-name>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<filter-class>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????org.springframework.web.filter.CharacterEncodingFilter
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????</filter-class>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<init-param>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<param-name>encoding</param-name>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<param-value>GBK</param-value>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????</init-param>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</filter>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<filter-mapping>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<filter-name>encodingFilter</filter-name>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<url-pattern>/*</url-pattern>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</filter-mapping>

4、在applicationContext-common.xml中配置一些公共的配置

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<!--?配置sessionFactory?-->
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<bean?id="sessionFactory"
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<property?name="configLocation">
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<value>classpath:hibernate.cfg.xml</value>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????</property>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</bean>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<!--?配置事务管理器?-->
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<bean?id="transactionManager"
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????class="org.springframework.orm.hibernate3.HibernateTransactionManager">
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<property?name="sessionFactory">
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<ref?bean="sessionFactory"?/>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????</property>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</bean>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<!--?配置事务的传播特性?-->
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<tx:advice?id="txAdvice"?transaction-manager="transactionManager">
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<tx:attributes>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<tx:method?name="add*"?propagation="REQUIRED"?/>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<tx:method?name="delete*"?propagation="REQUIRED"?/>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<tx:method?name="modify*"?propagation="REQUIRED"?/>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????<tx:method?name="*"?read-only="true"?/>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????</tx:attributes>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</tx:advice>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<!--?那些类的哪些方法参与事务?-->
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<aop:config>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<aop:advisor?pointcut="execution(*?com.test.manager.*.*(..))"
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????advice-ref="txAdvice"?/>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</aop:config>

5、在上一步中我们用到了aop,Spring本身并没有对其实现,而是使用了现成别人已经做好了的。需要引入两个jar包,在Spring中的 lib\aspectj 目录下

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发aspectjrt.jar
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发aspectjweaver.jar

6、 利用ANT+Xdoclet自动生成Hibernate配置文件,详见之前发表的文章【J2EE】ANT+Xdoclet自动生成Hibernate配置文件
7、在MySQL中建立数据库test
8、部署项目,启动Tomcat服务器便可在数据库中见到Hibernate为我们自动生成了两张表t_group、t_user
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发

9、由以上步骤可知,Spring与Hibernate整合成功。
(三)验证三个框架是否成功整合
1、对之前发表的文章【J2EE】Struts2.1.6与Spring2.5.6框架整合 中的com.test.manager.impl中的类LoginManagerImpl作如下修改:
继承HibernateDaoSupport
修改isLogin方法的实现

?1【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发package?com.test.manager.impl;
?2【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
?3【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发import?java.util.List;
?4【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
?5【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发import?org.springframework.orm.hibernate3.support.HibernateDaoSupport;
?6【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
?7【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发import?com.test.manager.LoginManager;
?8【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发import?com.test.model.User;
?9【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
10【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发public?class?LoginManagerImpl?extends?HibernateDaoSupport?implements
11【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????LoginManager?【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发{
12【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????@SuppressWarnings("unchecked")
13【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????public?boolean?isLogin(String?username,?String?password)?【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发{
14【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????/**//*
15【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发?????????*?if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim()))?{
16【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发?????????*?return?true;?}?return?false;
17【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发?????????*/
18【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发
19【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????Object[]?s?=?new?Object[2];
20【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????s[0]?=?username;
21【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????s[1]?=?password;
22【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????List<User>?users?=?this.getHibernateTemplate().find(
23【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????????"from?User?user?where?user.username=??and?password=?",?s);
24【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????if?(users.size()?==?0)?【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发{
25【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????????return?false;
26【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????}
27【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????return?true;
28【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????}
29【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发}

2、因为我们所继承的类HibernateDaoSupport需要显示地注入sessionFactory,所以必须在applicationContext-beans.xml中修改loginManager的配置,增加一个所需注入参数

【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????<bean?id="loginManager"
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????class="com.test.manager.impl.LoginManagerImpl">
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????????<property?name="sessionFactory"?ref="sessionFactory"></property>
【Java EE】Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架 调整开发????</bean>

3、在MySQL中存入数据,用户名和密码均为intrl,以便测试时使用。
4、重新启动Tomcat服务,访问登录页,进行测试,可以成功读取数据库中的User信息进行验证。三个框架整合成功!!!

(四)源代码下载
http://www.rayfile.com/files/a9c429e6-66b3-11de-a1bd-0014221b798a/

(五)其他资源
struts-2.1.6-all.zip:http://www.rayfile.com/files/d71417ae-66dd-11de-9d35-0014221b798a/
spring-framework-2.5.6-with-dependencies.zip:http://www.rayfile.com/files/6819bd23-66e2-11de-ad79-0014221b798a/
hibernate-distribution-3.3.1.GA-dist.zip:http://www.rayfile.com/files/ee9f69c7-66f3-11de-9954-0014221b798a/

jdk-6u12-windows-i586-p.exe:http://www.rayfile.com/files/2879e173-66f0-11de-9cd8-0014221b798a/
apache-tomcat-6.0.16.exe:http://www.rayfile.com/files/918febc7-66ed-11de-ab58-0014221b798a/
mysql\MYSQL123 5 5.0.zip:http://www.rayfile.com/files/dee8bc17-66f1-11de-a255-0014221b798a/

xdoclet-plugins-dist-1.0.4-bin.zip:http://www.rayfile.com/files/f8462580-66f2-11de-8a67-0014221b798a/
apache-ant-1.7.1-bin.zip:http://www.rayfile.com/files/78e4fa6e-66b6-11de-8110-0014221b798a/

读书人网 >J2EE开发

热点推荐