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

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
<!-- 配置数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/tobepro"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean> <!-- 配置sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 数据源指向上边的dataSource -->
<property name="dataSource" ref="dataSource" />
<!-- 配置包扫描,这样在启动的时候hibernate会自动搜索指定包下边有@Entity实体类文件 -->
<property name="packagesToScan" value="com.test.maven.model"/>
<!-- hibernate属性配置 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean> <!-- 配置事物管理器 -->
<bean id="transactionmManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<!-- 配置sessionFactory为上边的 -->
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- 配置事务,使用代理方式提供(abstract可能是以接口形式配置,然后 在其他bean中添加接口,让具体的POJO去实现) -->
<bean id="transactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionmManager" />
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
<prop key="get*">PROPAGATION_NEVER</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
</beans>

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

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> <!-- 配置dao包中class里成员赋值 -->
<bean id="WxUserDao" class="com.test.maven.dao.impl.WxUserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> <!-- 配置service包中class里成员赋值 -->
<bean id="WxUserServiceReal" class="com.test.maven.service.impl.WxUserServiceImpl">
<property name="wxUserDao" ref="WxUserDao"/>
</bean> <!-- 配置事务代理(把service代理过来) -->
<bean id="WxUserService" parent="transactionProxy">
<property name="target" ref="WxUserServiceReal"/>
</bean>
</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-Runoob-面向对象:Java 多态

    ylbtech-Java-Runoob-面向对象:Java 多态 1.返回顶部 1. Java 多态 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操 ...

  2. servlet对应.net中的http上下文

    java中的servlet在.net中其实就是http上下文.

  3. CodeSmith介绍和常见问题解决方案

    一.CodeSmith介绍 CodeSmith模板代码生成实战详解  https://www.cnblogs.com/knowledgesea/p/5016077.html 二.CodeSmith连接 ...

  4. http请求头设置

    Curl curl -i -H 'Content-Type: application/json' -i/--include     输出时包括protocol头信息curl -x 10.12.15.1 ...

  5. 第七篇 Flask 中路由系统

    1. @app.route() 装饰器中的参数 如果不明白装饰器 点击这里 methods : 当前 url 地址,允许访问的请求方式 @app.route("/info", me ...

  6. 使用Dottrace跟踪.net代码执行时间

    当程序遇到性能问题,如IIs请求反应缓慢,.net客户端程序执行缓慢,如何分析是哪里出了问题?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,清晰的看出是哪里执行时间过长,然后再分 ...

  7. Halcon学习之八:图像区域叠加与绘制

    版权声明:本文为博主原创文章,未经博主允许不得转载. overpaint_gray ( ImageDestination, ImageSource : : : )  将灰度值不相同区域用不同颜色绘制到 ...

  8. **python中的类和他的成员

    面向对象是一种编程方式,此编程方式的实现基于对 类 和 对象 的使用. Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 在这里,为文章中使用 ...

  9. Dbvisualizer设置SQL语句自动提示

    Dbvisualizer默认不自动提示SQL语句的命令及查询的表,虽然可以通过Ctrl+/快捷键进行手动调用出提示信息,用习惯了PLSQL Developer难免有些不适应. 设置自动提示方法: 点击 ...

  10. 解决MySql 数据库 提示:1045 access denied for user 'root'@'localhost' using password yes

    今天想用用MySQL 数据库  谁知道老提示 1045 access denied for user 'root'@'localhost' using password yes 最后在csdn 上找到 ...