今天从头把hibernate集成进入springMVC框架中,把过程记录下来。

  1.首先要在监听器配置文件中加入hibernate支持,如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
  7. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
  8. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
  9. <!-- 配置数据源 -->
  10. <bean id="dataSource"
  11. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  12. <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  13. <property name="url" value="jdbc:mysql://localhost:3306/tobepro"></property>
  14. <property name="username" value="root"></property>
  15. <property name="password" value="root"></property>
  16. </bean>
  17.  
  18. <!-- 配置sessionFactory -->
  19. <bean id="sessionFactory"
  20. class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  21. <!-- 数据源指向上边的dataSource -->
  22. <property name="dataSource" ref="dataSource" />
  23. <!-- 配置包扫描,这样在启动的时候hibernate会自动搜索指定包下边有@Entity实体类文件 -->
  24. <property name="packagesToScan" value="com.test.maven.model"/>
  25. <!-- hibernate属性配置 -->
  26. <property name="hibernateProperties">
  27. <props>
  28. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  29. <prop key="hibernate.hbm2ddl.auto">update</prop>
  30. <prop key="hibernate.show_sql">true</prop>
  31. <prop key="hibernate.format_sql">true</prop>
  32. </props>
  33. </property>
  34. </bean>
  35.  
  36. <!-- 配置事物管理器 -->
  37. <bean id="transactionmManager"
  38. class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  39. <!-- 配置sessionFactory为上边的 -->
  40. <property name="sessionFactory" ref="sessionFactory" />
  41. </bean>
  42.  
  43. <!-- 配置事务,使用代理方式提供(abstract可能是以接口形式配置,然后 在其他bean中添加接口,让具体的POJO去实现) -->
  44. <bean id="transactionProxy"
  45. class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  46. abstract="true">
  47. <property name="transactionManager" ref="transactionmManager" />
  48. <property name="transactionAttributes">
  49. <props>
  50. <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
  51. <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
  52. <prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
  53. <prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop>
  54. <prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
  55. <prop key="get*">PROPAGATION_NEVER</prop>
  56. <prop key="*">PROPAGATION_REQUIRED</prop>
  57. </props>
  58. </property>
  59. </bean>
  60. </beans>

配置文件中,首先配置了spring数据源,然后建立hibernate的session工厂(我使用的是hibernate注解方式的POJO类文件,所以采用packagesToScan的方法,若采用hbm配置文件的方法,无需添加此配置,但是需要增加hibernate.cfg.xml配置文件做配置),建立事物管理器,管理session工厂,然后配置代理。具体配置用法即原因在此就不做说明了,请自行百度。

在最后的代理配置中,只是配置了代理的接口,而具体的代理需要通过实际的代理来实现,如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
  8. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
  9.  
  10. <!-- 配置dao包中class里成员赋值 -->
  11. <bean id="WxUserDao" class="com.test.maven.dao.impl.WxUserDaoImpl">
  12. <property name="sessionFactory" ref="sessionFactory"/>
  13. </bean>
  14.  
  15. <!-- 配置service包中class里成员赋值 -->
  16. <bean id="WxUserServiceReal" class="com.test.maven.service.impl.WxUserServiceImpl">
  17. <property name="wxUserDao" ref="WxUserDao"/>
  18. </bean>
  19.  
  20. <!-- 配置事务代理(把service代理过来) -->
  21. <bean id="WxUserService" parent="transactionProxy">
  22. <property name="target" ref="WxUserServiceReal"/>
  23. </bean>
  24. </beans>

此文件首先初始化dao层和service层里必要的成员,然后把成员映射到代理。

hibernate注解方式配置实体类文件的方法 请参考hibernate注解解析

spring mvc 集成hibernate步骤的更多相关文章

  1. 第二十六天 蛰伏的Hibernate遇到春日的暖阳 —Spring MVC 集成Hibernate使用(一)

    6月7日.晴."纷纷红紫已成尘,布谷声中夏令新. 夹路桑麻行不尽.始知身是太平人. "        Hibernate和Spring的香艳相逢,不仅是Bean和Bean之间电光火 ...

  2. Spring MVC集成slf4j-logback

    转自: Spring MVC集成slf4j-logback 1.  Spring MVC集成slf4j-log4j 关于slf4j和log4j的相关介绍和用法,网上有很多文章可供参考,但是关于logb ...

  3. spring MVC 使用 hibernate validator验证框架,国际化配置

    spring mvc使用hibernate validator框架可以实现的功能: 1. 注解java bean声明校验规则. 2. 添加message错误信息源实现国际化配置. 3. 结合sprin ...

  4. Spring MVC 编程流程步骤

    Spring MVC 编程流程步骤 1. 建立Maven工程 2. 添加Spring MVC依赖 <dependencies> <dependency> <groupId ...

  5. 【实验一 】Spring Boot 集成 hibernate & JPA

    转眼间,2018年的十二分之一都快过完了,忙于各类事情,博客也都快一个月没更新了.今天我们继续来学习Springboot对象持久化. 首先JPA是Java持久化API,定义了一系列对象持久化的标准,而 ...

  6. spring mvc集成freemarker使用

    freemarker作为视图技术出现的比velocity早,想当年struts风靡一时,freemarker作为视图层也风光了一把.但现在velocity作为后起之秀的轻量级模板引擎,更容易得到青睐. ...

  7. spring mvc集成velocity使用

    目前流行的三大页面视图神器是:老牌大哥jsp.后起之秀freemarker和velocity.这里不详细比较这三者的优劣,总体来说,jsp是标配,但后面两个更严格的执行了视图与业务的分离,页面里是不允 ...

  8. spring mvc 集成freemarker模板

    主要使用到的jar 文件:spring mvc +freemarker.jar 第一步:spring mvc 集成 freemarker <!-- 定义跳转的文件的前后缀 ,视图模式配置--&g ...

  9. Spring,Spring MVC,MyBatis,Hibernate总结

    将之前学习的框架知识进行了UML图总结,若有错误或不当之处,劳烦朋友们指正,会及时作出修改和补充: [toc] Spring Spring MVC MyBatis,Hibernate

随机推荐

  1. java代码----数据类型的转换-----int --->String

    总结:int ----->String package com.a.b; //测试..char--->int // int--->String public class Yue2 { ...

  2. jQuery样式与动画

    修改内联CSS .css() 获取 //取得单个属性的值,传入'属性名',返回"value" .css('property') //取得多个属性的值,传入'['属性1','属性2' ...

  3. 函数~匿名方法~lambda的逐渐过渡思想

    前提:基于委托实现 (1)使用函数名称 delegate void Printer(string s);//(1)申明委托 static void Main(string[] args) { //(3 ...

  4. [z]兼容IE6的相对于浏览器窗口定位

    http://blog.uedsc.com/css-position.html http://www.w3cmm.com/notepad/css-position.html http://sofish ...

  5. web开发-CORS支持

    一.简介 Web 开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS 等等 1.1.CORS与JSONP相比 1.JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求 ...

  6. <转> win7下破解已安装的VS2008

    http://renfan.blog.51cto.com/3466724/754301 在win7系统下,已安装的VS2008维护界面是不显示序列号输入的,需要按以下步骤进行才能破解 1.点击“卸载/ ...

  7. ios编译出错:UIButton.h' has been modified since the precompiled header UIKit.pcm' was built

    今天编译遇到个问题:如下 fatal error: file '/Applications/Xcode 2.app/Contents/Developer/Platforms/iPhoneSimulat ...

  8. System.Web.Mvc.Html 命名空间小计

    1,Html.Action    使用指定参数调用指定子操作方法并以 HTML 字符串形式返回结果. 1 <div id="HtmlAction"> 2 3 @Html ...

  9. sha1sum校验下载的文件

    [root@mhc1 test]# sha1sum Percona-XtraBackup-2.4.8-r97330f7-jessie-x86_64-bundle.tara9c6b1c7cb3bf98b ...

  10. Linux实战教学笔记28:企业级LNMP环境应用实践

    一,LNMP应用环境 1.1 LNMP介绍 大约在2010年以前,互联网公司最常用的经典Web服务环境组合就是LAMP(即Linux,Apache,MySQL,PHP),近几年随着Nginx Web服 ...