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

本文详细介绍了如何在MyEclipse环境中实现Spring与Hibernate框架的整合,包括必要的配置步骤及示例代码,确保开发者能顺利搭建起高效稳定的开发环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人采用的开发环境为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包
None.gif hibernate3.jar
None.gifantlr-2.7.6.jar
None.gifcommons-collections-3.1.jar
None.gifdom4j-1.6.1.jar
None.gifjavassist-3.4.GA.jar
None.gifjta-1.1.jar
None.gifslf4j-api-1.5.2.jar
因为slf4j-api-1.5.2.jar只有接口,还需要其实现类,而Hibernate带有的jar包中并没有包含,所以还需自己到apache网站下载
None.gif slf4j-log4j12-1.5.2.jar
None.giflog4j-1.2.14.jar
两个jar包,一个是其实现,log4j-1.2.14.jar是slf4j-log4j12-1.5.2.jar所需要用到的jar包
2、在web.xml中配置过滤器,让Spring为我们自动管理session,无需我们手动开、关Hibernate中的session
None.gif      < filter >
None.gif        
< filter-name > hibernateFilter </ filter-name >
None.gif        
< filter-class >
None.gif            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
None.gif        
</ filter-class >
None.gif    
</ filter >
None.gif    
< filter-mapping >
None.gif        
< filter-name > hibernateFilter </ filter-name >
None.gif        
< url-pattern > /* </ url-pattern >
None.gif    
</ filter-mapping >
3、在web.xml中配置过滤器,处理字符集编码
None.gif      < filter >
None.gif        
< filter-name > encodingFilter </ filter-name >
None.gif        
< filter-class >
None.gif            org.springframework.web.filter.CharacterEncodingFilter
None.gif        
</ filter-class >
None.gif        
< init-param >
None.gif            
< param-name > encoding </ param-name >
None.gif            
< param-value > GBK </ param-value >
None.gif        
</ init-param >
None.gif    
</ filter >
None.gif    
< filter-mapping >
None.gif        
< filter-name > encodingFilter </ filter-name >
None.gif        
< url-pattern > /* </ url-pattern >
None.gif    
</ filter-mapping >
4、在applicationContext-common.xml中配置一些公共的配置
None.gif      <!--  配置sessionFactory  -->
None.gif    
< bean  id ="sessionFactory"
None.gif        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
None.gif        
< property  name ="configLocation" >
None.gif            
< value > classpath:hibernate.cfg.xml </ value >
None.gif        
</ property >
None.gif    
</ bean >
None.gif
None.gif    
<!--  配置事务管理器  -->
None.gif    
< bean  id ="transactionManager"
None.gif        class
="org.springframework.orm.hibernate3.HibernateTransactionManager" >
None.gif        
< property  name ="sessionFactory" >
None.gif            
< ref  bean ="sessionFactory"   />
None.gif        
</ property >
None.gif    
</ bean >
None.gif
None.gif    
<!--  配置事务的传播特性  -->
None.gif    
< tx:advice  id ="txAdvice"  transaction-manager ="transactionManager" >
None.gif        
< tx:attributes >
None.gif            
< tx:method  name ="add*"  propagation ="REQUIRED"   />
None.gif            
< tx:method  name ="delete*"  propagation ="REQUIRED"   />
None.gif            
< tx:method  name ="modify*"  propagation ="REQUIRED"   />
None.gif            
< tx:method  name ="*"  read-only ="true"   />
None.gif        
</ tx:attributes >
None.gif    
</ tx:advice >
None.gif
None.gif    
<!--  那些类的哪些方法参与事务  -->
None.gif
None.gif    
< aop:config >
None.gif        
< aop:advisor  pointcut ="execution(* com.test.manager.*.*(..))"
None.gif            advice-ref
="txAdvice"   />
None.gif    
</ aop:config >
5、在上一步中我们用到了aop,Spring本身并没有对其实现,而是使用了现成别人已经做好了的。需要引入两个jar包,在Spring中的 lib\aspectj 目录下
None.gif aspectjrt.jar
None.gifaspectjweaver.jar

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

9、由以上步骤可知,Spring与Hibernate整合成功。
(三)验证三个框架是否成功整合
1、对之前发表的文章 【J2EE】Struts2.1.6与Spring2.5.6框架整合中的com.test.manager.impl中的类LoginManagerImpl作如下修改:
继承HibernateDaoSupport
修改isLogin方法的实现
 1 None.gif package  com.test.manager.impl;
 2 None.gif
 3 None.gif import  java.util.List;
 4 None.gif
 5 None.gif import  org.springframework.orm.hibernate3.support.HibernateDaoSupport;
 6 None.gif
 7 None.gif import  com.test.manager.LoginManager;
 8 None.gif import  com.test.model.User;
 9 None.gif
10 None.gif public   class  LoginManagerImpl  extends  HibernateDaoSupport  implements
11 ExpandedBlockStart.gifContractedBlock.gif        LoginManager  dot.gif {
12InBlock.gif    @SuppressWarnings("unchecked")
13ExpandedSubBlockStart.gifContractedSubBlock.gif    public boolean isLogin(String username, String password) dot.gif{
14ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//*
15InBlock.gif         * if(null!=username&&null!=password&&"intrl".equals(username.trim())&&"intrl".equals(password.trim())) {
16InBlock.gif         * return true; } return false;
17ExpandedSubBlockEnd.gif         */

18InBlock.gif
19InBlock.gif        Object[] s = new Object[2];
20InBlock.gif        s[0= username;
21InBlock.gif        s[1= password;
22InBlock.gif        List<User> users = this.getHibernateTemplate().find(
23InBlock.gif                "from User user where user.username=? and password=?", s);
24ExpandedSubBlockStart.gifContractedSubBlock.gif        if (users.size() == 0dot.gif{
25InBlock.gif            return false;
26ExpandedSubBlockEnd.gif        }

27InBlock.gif        return true;
28ExpandedSubBlockEnd.gif    }

29ExpandedBlockEnd.gif}
2、因为我们所继承的类HibernateDaoSupport需要显示地注入sessionFactory,所以必须在applicationContext-beans.xml中修改loginManager的配置,增加一个所需注入参数
None.gif      < bean  id ="loginManager"
None.gif        class
="com.test.manager.impl.LoginManagerImpl" >
None.gif        
< property  name ="sessionFactory"  ref ="sessionFactory" ></ property >
None.gif    
</ bean >
3、在MySQL中存入数据,用户名和密码均为intrl,以便测试时使用。
4、重新启动Tomcat服务,访问登录页,进行测试,可以成功读取数据库中的User信息进行验证。三个框架整合成功!!! 59930.html

hobo 2009-07-10 08:49 发表评论

转载于:https://www.cnblogs.com/zhouweiwei/archive/2009/07/10/1866518.html

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值