配置Hibernate环境


1、 把Hibernate的相关jar包复制到lib目录下:

① HIBERNATE_HOME/lib 下的相关的依赖的第三方包
② HIBERNATE_HOME/hibernate3.jar Hibernate的核心实现
③ 引入入相关的JDBC驱动


2、 在src目录下创建相关的配置文件:hibernate.cfg.xml

可以从以下目录中拷贝过来修改:

HIBERNATE_HOME \etc\ hibernate.properties 旧版本的Hibernate实用的核心配置文件,这个文件列举了相关的Hibernate配置,在配置文件时可以参考该文件。
HIBERNATE_HOME \etc\ hibernate.cfg.xml 如果存在这个文件则会覆盖上面的properties文件
HIBERNATE_HOME\hibernate-3.2\etc 日志记录文件


3、 编写hibernate.cfg.xml文件:

<hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/数据库名称</property><property name="hibernate.connection.username">用户</property><property name="hibernate.connection.password">密码</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.show_sql">true</property><!--<property name="hibernate.format_sql">true</property>-->      <mapping resource="com/test/User.hbm.xml"/></session-factory>
</hibernate-configuration>


4、 编写*.hbm.xml等实体映射文件

<hibernate-mapping><class name="com.test.User"><id name="id"><generator class="uuid"/></id><property name="name" column=”user_name”/><property name="password"/></class>
</hibernate-mapping>

创建完映射文件之后,记得把hbm.xml文件添加到hibernate.cfg.xml文件中

<mapping resource="com/test/User.hbm.xml"/>(在session-factory标签里property标签后)


5、 生成数据库

创建hibernate.cfg.xml中指定的数据库
可以使用SchemaExport生成相关表

Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);

也可以在hibernate.cfg.xml中进行相关的配置使之自动生成

<property name="hibernate.hbm2ddl.auto">create</property>

配置Spring环境:


1、 把spring相关的jar包复制到lib目录中

SPRING_HOME\dist\spring.jar spring核心jar包
SPRING_HOME \lib\log4j\log4j-1.2.14.jar 记录日志
SPRING_HOME \lib\jakarta-commons\commons-logging.jar


2、 在WEB-INF下建立applicationContext.xml

可从SPRING_HOME\ samples\jpetstore\war\WEB-INF\目录下拷贝applicationContext.xml


3、 提供log4j.properties配置文件

可从下面目录中拷贝:

G:\software_programming\Java\SSH\spring\spring-framework-2.0.8-with-dependencies\spring-framework-2.0.8\samples\jpetstore\war\WEB-INF\ log4j.properties


4、把初始化Hibernate的SessionFactory接口交给spring管理

<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>

注意:这里的数据库相关配置信息是写到了hibernate.cfg.xml文件中,也可以通过在spring配置jdbc datasource对数据库进行管理,然后通过datasource注入sessionFactory的方式来创建会话工厂。


5、配置spring为hibernate配置的数据库访问操作的封装类hibernateTemplate

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" />
</bean>


6、在applicationContext.xml文件中配置数据库的事务(也可以使用AOP进行配置)

<!-- 事务拦截器bean需要依赖注入一个事务管理器 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><!-- 设置事务传播特性,对应于AOP中的 <tx:advice />  --><bean id="transactionInterceptor"class="org.springframework.transaction.interceptor.TransactionInterceptor"><property name="transactionManager"><ref bean="transactionManager" /></property><property name="transactionAttributes"><props><prop key="get*">PROPAGATION_REQUIRED, readOnly</prop><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean>   <!-- 定义BeanNameAutoProxyCreator,配置哪些类和哪些方法使用事务对应于AOP中的 <aop:pointcut /> -->   <beanclass="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"><!-- 指定对满足哪些bean name的bean自动生成业务代理 --><property name="beanNames"><!-- 下面是所有需要自动创建事务代理的bean-->   <list><value>userDAO</value>             <value>provinceDAO</value><value>cityDAO</value><value>sexDAO</value><value>statusDAO</value></list><!-- 此处可增加其他需要自动创建事务代理的bean--></property><property name="interceptorNames"><!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->   <list><value>transactionInterceptor</value><!-- 此处可增加其他新的Interceptor --></list></property></bean>


7、在applicationContext.xml中配置相关的数据访问层Dao,注意创建时要给spring提供一个借口,方便其代理

<bean id="userDAO" class="com.pzx.dao.UserDAOImpl"><constructor-arg><ref bean="hibernateTemplate" /></constructor-arg>
</bean>


8、在applicationContext.xml中配置相关的业务逻辑层Service,其构造函数中的参数指向器数据访问层bean

<bean id="userService" class="net.blogjava.nokiaguy.kxw.service.UserServiceImpl"><constructor-arg><ref bean="userDAO" /></constructor-arg>
</bean>


9、在web.xml中配置如下信息

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml,applicationContext-*.xml</param-value>
</context-param>

其中的param-value根据自己的applicationContext.xml存放位置决定。

配置Struts2环境


1、 把相关jar文件拷贝到项目中

STRUTS_HOME /apps/struts2-blank-2.1.8/WEB-INF/lib 目录下的相关jar文件
STRUTS_HOME/lib/struts2-spring-plugin-2.1.8.jar


2、 配置web.xml文件

可以从STRUTS_HOME /apps/struts2-blank-2.1.8/WEB-INF/web.xml文件中拷贝:

<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

另外可以这样配置字符编码过滤器:

<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true </param-value></init-param>
</filter>
<filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>*.action </url-pattern>
</filter-mapping>


3、 在struts.xml中配置项拦截器

<interceptors><interceptor-stack name="excludeParamsStack"><interceptor-ref name="defaultStack"><param name="params.excludeParams">ext-comp-.*</param></interceptor-ref></interceptor-stack></interceptors>

另外在struts.xml文件中常配置的两个常量:

<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="utf-8"></constant>


4、 在struts.xml中配置相关的Action

<action name="*-*" class="com.exam.student.actions.{1}Action" method="{2}"><result>/{1}-{2}.jsp</result><result name="input">/WEB-INF/exam/{1}-{2}.jsp</result><!-- <exception-mapping result="error" exception="java.sql.SQLException" />  <result name="error">/error.jsp</result> -->
</action>

Struts2 Hibernate Spring 整合的基本流程和步骤及其相关配置细节相关推荐

  1. Struts2+Hibernate+Spring 整合示例

    转自:https://blog.csdn.net/tkd03072010/article/details/7468769 Struts2+Hibernate+Spring 整合示例 Spring整合S ...

  2. Struts2 + Hibernate + Spring 以及javaweb模块问题解决(1)

    Struts2 + Hibernate + Spring 以及javaweb模块问题解决 1.资源文件的配置:src文件夹里面要配置,action所在的目录中也要配置. 2.<s: action ...

  3. Struts2学习笔记——Struts2与Spring整合

    Struts2与Spring整合后,可以使用Spring的配置文件applicationContext.xml来描述依赖关系,在Struts2的配置文件struts.xml来使用Spring创建的be ...

  4. 【struts2+hibernate+spring项目实战】实现用户登录功能(ssh)

    一.概述 从今天才开始有时间来总结总结以前自己练习的一些东西,希望总结出来对以后可以更加便捷的来学习,也希望可以帮助到正需要这些东西的同行人,一起学习,共同进步. 二. 登录功能总结 2.1.登录功能 ...

  5. Struts2与Spring整合

    Struts2与Spring整合后,可以使用Spring的配置文件applicationContext.xml来描述依赖关系,在Struts2的配置文件struts.xml来使用Spring创建的be ...

  6. struts2+hibernate+spring配置详解

    #struts2+hibernate+spring配置详解 struts2+hibernate+spring配置详解 哎 ,当初一个人做好难,现在终于弄好了,希望自学这个的能少走些弯路. 以下是自己配 ...

  7. 二十六:Struts2 和 spring整合

    二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot-- ...

  8. 关于如何利用Struts2,Hibernate,Spring开发电子商业汇票系统

    关于如何利用Struts2,Hibernate,Spring开发电子商业汇票系统. 首先先说说电子商业汇票的种类: 1.电子银行承兑汇票 2.电子商业承兑汇票 另外电子商业汇票与纸票的区别: 电子商业 ...

  9. SSH整合(Struts2+hibernate+spring)

    1.创建表 create table t_user(id int primary key auto_increment,username varchar(50),password varchar(32 ...

最新文章

  1. 设计模式——单例模式(Singleton)
  2. cron 工具 每分钟_计划任务 cron和crontab
  3. jsp中${}解析不了
  4. 目前计算机科学研究的最前沿的课题之一,04大学计算机础课程试卷.doc
  5. chrome启用flash_如何在Google Chrome中启用Adobe Flash Player
  6. [转]unity3D游戏开发之GUI
  7. SpringIOC容器-对象依赖
  8. 今晚直播预告丨Oracle 19c避雷经验分享
  9. 通过Instant Client包来使用SQL*PLUS
  10. ajax--跨域问题及三种简单的解决方案
  11. python基础教程书籍-Python学习必看书籍_带你高效学习
  12. .Net程序猿玩转Android开发---(11)页面跳转
  13. 21个js 技巧收藏
  14. 三维设计和动画:Cinema 4D R25 for mac(c4d r25)
  15. 【转】单循环赛赛程安排算法研究
  16. Java字符流拷贝/复制文本文件,字节流拷贝文本文件乱码,很经典简便
  17. 详解AC97和HD声卡前置音频接口的连接跳线
  18. C#-概念-类库:类库
  19. if...elseif....else 语句 2020年周易起名系统开发,生辰八字,周易
  20. 服务器修改bios中uefi,服务器bios uefi设置

热门文章

  1. 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )
  2. 【集合论】关系性质 ( 常见的关系的性质 | 关系性质示例 | 关系运算性质 )
  3. Mybatis-Plus插件配置
  4. Idea自带工具解决冲突
  5. 关于manacher
  6. 剑指offer解题思路锦集11-20题
  7. C# System.Reflection (反射)
  8. Selenium java环境搭建
  9. 关于ionic的跨域问题
  10. 把 Eclipse 中的工程 Push 到 Github(适用 Windows 平台)