基于Myeclipse的三大框架(SSH)整合
文中主要基于Myeclipse进行配置,配置流程为:Hibernate --> Spring --> 整合 --> struts2 -->整合。注意:在此文中,主要讲述基于注解方式配置Bean。
在配置三大部件时,都需要导入各自的jar包。基于Myeclipse,可右击“项目”,点击“Myeclipse”,找到“Project Facets[Capabilities]”,然后导入jar包。
配置HIbernate:首先创建实体类,然后配置实体关系映射表 .hbm.xml文件,最后创建Hibernate配置文件 Hibernate.cfg.xml。在配置 .hbm.xml文件时,可寻找一个插件,由系统自动生成,这里不再说明;也可跟创建一般配置文件一般,手动创建,然后根据数据库表字段逐一配置(右键“项目”,file > xml[Basic Tamplates] > "命名" > "选择第一个DTD" > "选择第二个,找到 HIbernate Mapping DTD 3.0 //en" >finish)。在配置Hibernate.cfg.xml时,数据库连接可由Spring配置,所以文件中只需配置一些Hibernate基础配置。另外创建Hibernate配置文件只需右键“项目”,在“File”中寻找Hibernate configuration file即可。
1.Hibernate配置文件中信息可有:
<session-factory>
<!-- 配置数据库方言 -->
<!-- <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> -->
<!-- 配置Hibernate 事务隔离级别 -->
<property name="connection.isolation">2</property>
<!-- 运行时是否打印sql -->
<property name="show_sql">true</property>
<!-- 运行时是否格式化 sql-->
<property name="format_sql">true</property>
<!-- 生成数据库表的策略 --自动生成-->
<property name="hbm2ddl.auto">update</property>
</session-factory>
2.配置Spring并整合Hibernate:创建Spring配置文件只需右键”项目”,在”File”中寻找“Struts Configuration file”即可。配置中基于注解方式注入。
<Beans>
<context:component-scan base-package="com.shymain.webwork"></context:component-scan> <!-- 配置IOC 容器扫描范围 -->
<!-- 导入资源文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置C3P0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
</bean>
<!-- 配置Hibernate 的SessionFactory 实例: 通过Spring 提供的 LocalSessionFactoryBean 进行配置 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 配置数据源属性 -->
<property name="dataSource" ref="dataSource"></property>
<!-- Hibernate 配置文件及名称 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<!-- 配置Hibernate 映射文件的位置及名称,可以使用通配符 -->
<property name="mappingLocations"
value="classpath:com/shymain/webwork/entity/*.hbm.xml"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.autoReconnect">true</prop>
</props>
</property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" /> <!-- 启动事物 -->
<!-- proxy-target-class属性值决定是基于接口的还是基于类的代理被创建。具体意义为:
当要使用实现了某个接口的类让Spring来生成bean时,无需在aop配置中添加proxy-target-class,因为它默认为false.
但如果要使用一个指定的类,让Spring来生成bean,并使用它的某个方法时,需要在aop配置上加上一句proxy-target-class="true",否则用JUnit时,会出现:
Java.lang.ClassCastException: com.sun.proxy.$Proxy6 cannot be cast to daoImp.DAOImp类似的错误. -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
</Beans>
注意:在使用注解注入Bean时,各类之前应加入@Component,@Respository,@Service,@Action等进行注释。对于各类中实体对象,使用@Autowire自动注入。对于事物管理,可在事务处理类之前需要申明事务,使用@Transactional注释。如果使用 .XMl配置文件配置,需要配置切入点,如下:
<!-- 配置事务属性,需要事务管理器 -->
<tx:advice id="txadvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="SUPPORTS"/>
</tx:attributes>
</tx:advice>
<!-- 配置事务切入点,以及把事务切入点与事务属性关联起来 -->
<aop:config>
<aop:pointcut expression="execution(* com.shymain.webwork.service.*.*(..))" id="txPointcut"/>
<aop:advisor advice-ref="txadvice" pointcut-ref="txPointcut"/>
</aop:config>
3.配置Struts并与Spring整合:使用注解配置JavaBean,与一般Bean的配置相同。需要注意的是,Struts与Spring整合时,在Struts中action的配置属性class需要指向Spring中相对应Bean的id属性。另外,整合过程中,对应Action的JavaBean配置需指定Scope属性值为“prototype”,基于注解使用@Scope("prototype")。struts配置文件的创建只需右键“项目”,在“File”中寻找即可。

struts配置文件中配置:
<struts>
<!-- 配置Action的可延续后缀名 -->
<constant value="action,do," name="struts.action.extension"></constant>
<!-- 指定由Spring创建实例 -->
<constant name="struts.objectFactory" value="spring" />
<package name="default" extends="struts-default" namespace="/">
<!-- action中class属性指定在spring配置中Action相对应的id -->
<action class="customerAction" name="CustomerAction" method="save">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
练习时个人教训: 创建项目时,注意将连接数据库jar包导入项目中,确保在 WEB-INF 下的 lib 中存在,不然出现各种错误,最后还是不知道错在哪里。。。。
修改:在配置Struts时,需要在web.xml 中配置filter过滤器,由于此前是基于Myeclipse整合,在配置Struts时,系统会自动配置。
基于Myeclipse的三大框架(SSH)整合的更多相关文章
- 三大框架SSH整合
三大框架SSH整合 -------------------------------Spring整合Hibernate------------------------------- 一.为什么要整合Hi ...
- 三大框架SSH(struts2+spring+hibernate)整合时相关配置文件的模板
最近在学SSH三大框架的整合,在此对他们整合时相关配置文件做一简单的模板总结,方便以后复用! 首先是web.xml配置文件,这里面就配置一些简单的监听器.过滤器,包括spring核心配置文件appli ...
- SSH三大框架的整合
SSH三个框架的知识点 一.Hibernate框架 1. Hibernate的核心配置文件 1.1 数据库信息.连接池配置 1.2 Hibernate信息 1.3 映射配置 1.4 Hibernate ...
- JavaEE三大框架的整合
JavaEE三大框架的整合 ...
- SSM三大框架的整合
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 在Java后端开发领域,Spri ...
- [转]JAVA三大框架SSH和MVC
Java—SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就 ...
- JAVA三大框架SSH和MVC
Java—SSH(MVC) JAVA三大框架的各自作用 hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 ...
- javaweb三大框架SSH
1.MVC三层架构:模型层,控制层和视图层.模型层,用Hibernate框架让来JavaBean在数据库生成表及关联,通过对JavaBean的操作来 对数据库进行操作:控制层,用Struts框架来连接 ...
- JAVA三大框架SSH的各自作用
一.Spring Spring是一个解决了许多在J2EE开发中常见的问题的强大框架. Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯. Spring的 ...
随机推荐
- pdf2swf 转换时报This file is too complex to render- SWF only supports 65536 shapes at once
ERROR ID Table overflow ERROR This file is too complex to render- SWF only supports 65536 shapes ...
- 利用vs自带工具分析程序性能
测试程序写好后可以通过VS2010分析菜单里选择启用性能向导 选择CPU采样后就选择需要分析的项目 测试项目选择完成后就可以运行分析,结束分析后VS2010会提供个详细报告文档 从分析结果来看GetC ...
- git 系统中 post-receive 钩子不能正常执行 git pull 解决方法
有一个需求是本地git在push到远程 git repo 之后,在远程服务器上自动在/dir/foo下执行 git pull 的操作.想来是一个很简单的需求,不就是在远程的 foo.git 仓库中的 ...
- 如何在ubuntu下使用windows下的程序(eg: .exe)
为了在ubutu下安装百度云管家,上网查了下如何在ubuntu 下安装.exe文件,其中遇到一些问题记录如下: 使用的命令: 开始时直接使用的sudo apt-get install wine 在运行 ...
- cocos2d-x2.2+win7+vs2010+python安装配置
个人网站http://www.ravedonut.com/ 1.安装vs2010 2.解压cocos2d-x,打开cocos2d-win32.vc2012.sln,编译,然后运行Hellocpp成功即 ...
- java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String
问题背景:从前端传来的json字符串中取某些值,拼接成json格式入参调外部接口. 报如下错: java.lang.ClassCastException: java.util.HashMap cann ...
- Hue离线安装
参考 https://blog.csdn.net/xuxudede1989/article/details/50359023 http://cloudera.github.io/hue/latest/ ...
- Python使用Timer实现验证码功能
from threading import Timer import random class Code: def __init__(self): self.make_cache() def make ...
- 算法学习--Day9
继上一次完成最小生成树后,这次我开始准备最短路径的程序. 最短路分为两种算法,第一个为Floyd算法,第二个为Dijkstra. 简单来说,Floyd是以点为参照对象,它使用三层循环求解当前图中所有点 ...
- unity 引入 android第三方sdk
unity中调用java代码中介绍了unity调用android java代码的一些基础.引入android开发第三方sdk的操作跟调用java代码的操作相似,只是多了一步引入第三方jar. unit ...