hibernate与spring的初步整合

<?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:p="http://www.springframework.org/schema/p"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

 <!-- 
 
  配置文件:
  1.配置数据库连接:
   ① dataSourse
   ② sessionFactory
  2.事务的配置:
   ① transactionManager
   ② tx:advice
   ③ aop:pointcut
   
 
  -->

 <context:property-placeholder location="classpath:db.properties"/>
 
 <bean id="dataSourse" 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>
 </bean>

 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSourse"></property>
  
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    <prop key="hibernate.hbm2ddl.auto">update</prop>
   </props>
  </property>
 
  <property name="mappingLocations" value="classpath:com/yawn/entity/Acount.hbm.xml"></property> 
  
  <!-- 
   以上部分配置来自于 hibernate 的配置文件 hibernate.cfg.xml 
   如果引入此文件就不需再配置,引入方法如下:
   <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
   -->
 </bean>
 
 
 
 <!-- 
 
  配置事务:
  1.事务管理器
  2.事务属性
  3.事务切点
 
  -->
 
 <bean id="transactionManager"
  class="org.springframework.orm.hibernate4.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
 </bean>
 
 <tx:advice id="txAdvice">
  <tx:attributes>
   <tx:method name="get*" read-only="true"/>
   <tx:method name="*" />
  </tx:attributes>
 </tx:advice>
 
 <aop:config>
  <aop:pointcut expression="execution(* com.yawn.service.Service1.transfer(..))" id="txPointcut"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
 </aop:config>
 
 
 <!-- spring 中 bean 的基本配置和属性注入 -->
 <bean class="com.yawn.dao.impl.AcountDaoImpl" id="acountDaoImpl">
  <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>
 <bean class="com.yawn.service.Service1" id="service">
  <property name="acountDaoImpl" ref="acountDaoImpl"></property>
 </bean>
 
 
 
 <!-- 
 <tx:annotation-driven transaction-manager="transactionManager" />
  -->
</beans>

以上为整合的配置文件,而整合步骤如下:

  1. 配置数据源(dataSourse,javax.sql.DataSourse)
  2. 配置sessionFactory
  3. 配置事务管理器
  4. 配置事务属性(tx:advice -> tx:attributs)
  5. 配置事务切点(包括关联事务属性和事务切点)
  6. 配置其他业务所需的bean等

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏帅小子的日常

spring的事务配置方法

32113
来自专栏程序员与猫

ASP.NET Core模块概述

原文地址:ASP.NET Core Module overview By Tom Dykstra, Rick Strahl, and Chris Ross AS...

1848
来自专栏java思维导图

http超文本协议,让http不再难懂

先来个导图,再来分解: ? 导图详情: 协议 HyperText Transfer Protocol,超文本传输协议 一个无状态的请求/响应协议 是因特网上应...

2897
来自专栏技术墨客

Spring核心——资源数据管理 原

在Profile管理环境一文中介绍了环境的概念以及Spring Profile特性控制Bean的添加。本文将进一步介绍Spring管理和控制操作系统变量、JVM...

644
来自专栏静默虚空的博客

剖析 HTTP 协议

HTTP 概述 HTTP 是什么? HTTP(HyperText Transfer Protocol,超文本传输协议)是WWW (World Wide Web)...

1847
来自专栏张善友的专栏

IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法

WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的...

1986
来自专栏葡萄城控件技术团队

Asp.Net MVC4入门指南(2):添加一个控制器

MVC代表: 模型-视图-控制器 。MVC是一个架构良好并且易于测试和易于维护的开发模式。基于MVC模式的应用程序包含: · Models: 表示该应用程序的数...

1777
来自专栏河湾欢儿的专栏

vue keep-alive

结合router,缓存部分页面 使用$route.meta的keepAlive属性:

573
来自专栏Java学习123

一个简单的AXIS远程调用Web Service示例

3127
来自专栏dotnet core相关

使用cookie来做身份认证

这里先讲一下Authentication和Authorization两个词的区别。

1219

扫描关注云+社区