基于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的 ...
随机推荐
- 配置tomcat https的步骤
keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500 keytool -g ...
- 【转】Oracle Freelist和HWM原理及性能优化
文章转自:http://www.wzsky.net/html/Program/DataBase/74799.html 近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些 ...
- python GUI尝鲜(但当涉猎,见往事耳)
第一步:简单的窗口和内容 import tkinter as tk window = tk.Tk() # 窗口obj对象 window.title('my TK') # 窗口名字 window.geo ...
- c++中stl----vector
1 vector是啥玩意 (1)可以使用下标访问个别的元素 (2)迭代器可以按照不同的方式遍历 (3)可以在容器的末尾增加或者删除元素 2 容器大小和容器的容量区别 (1)大小是元素的个数,容量是分配 ...
- 1 python----pycharm本地部署spark
下图相关工具连接 链接:https://pan.baidu.com/s/115XWf_Fc1yMiJytKJQXnFQ 密码:3jvr 好了,加油哟!
- Nginx的安装配置和tomcat负载均衡
Nginx简介 什么是nginx? Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开发,官方测试ngi ...
- Fitnesse的一个简单实例
Fixture 代码 package eg; import org.joda.time.DateTime; public class JodaTime { int year; public Strin ...
- Qt-MVC图形视图框架分解
前面在<Qt-MVC图形视图框架出识>中我们了解了Qt图形视图框架中三个最基本的类,弄清他们的关系,本片小文,我们将对QGraphicsView,QGraphiceScene,QGraph ...
- POJ3264 【RMQ基础题—ST-线段树】
ST算法Code: //#include<bits/stdc++.h> #include<cstdio> #include<math.h> #include< ...
- MongoDb 创建用户以及其他版本造成的一些问题
问题:require auth data to have schema version 3 but found 1 这是可以查看如下链接: http://stackoverflow.com/quest ...