`
duanfei
  • 浏览: 733653 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring 声明式事务配置的一种形式-Hibernate多事务

    博客分类:
  • J2EE
阅读更多
数据源:
jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/wgfmcg?autoReconnect\=true&useUnicode\=true&characterEncoding\=utf-8
jdbc.username=username
jdbc.password=password
jdbc.maximumConnectionCount=200
jdbc.houseKeepingSleepTime=15000
jdbc.houseKeepingTestSql=select CURRENT_DATE
jdbc.testBeforeUse=true
jdbc.alias=mysqlProxoolDataSource
jdbc.simultaneousBuildThrottle=1000
jdbc.trace=false


jdbc.initialPoolSize=10
jdbc.maxIdleTime=60
jdbc.acquireIncrement=5
jdbc.maxStatements=0
jdbc.idleConnectionTestPeriod=60
jdbc.acquireRetryAttempts=30
jdbc.breakAfterAcquireFailure=true
jdbc.testConnectionOnCheckout=false
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
pagemax=10
telephone=153,133,189
failsendnum=3
failsendtime=30
sendnumber=11100011111111
sessionTime=12
startupsms=true
serverip=202.102.126.40
exigenceinform=//BREW:0x01098087://KMS://MSG/
changeserverip=//BREW:0x01098087://KMS://SET/
personorientation=http://202.102.112.30/login.do?#jdbc.driver=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc\:oracle\:thin\:@localhost\:1521\:ORCL
#jdbc.username=username
#jdbc.password=password
jdbc.useUnicode=true
jdbc.characterEncoding=UTF-8

<!--此bean告诉Spring去哪找数据库的配置信息,因为有此Bean才出现下面用${}标记来取变量的语句-->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location" value="/WEB-INF/jdbc.properties" />
</bean>

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource"
	lazy-init="false">
	<property name="driver">
		<value>${jdbc.driverClassName}</value>
	</property>
	<property name="driverUrl">
		<value>${jdbc.url}</value>
	</property>
	<property name="user">
		<value>${jdbc.username}</value>
	</property>
	<property name="password">
		<value>${jdbc.password}</value>
	</property>
	<property name="maximumConnectionCount">
		<value>${jdbc.maximumConnectionCount}</value>
	</property>
	<property name="houseKeepingSleepTime">
		<value>${jdbc.houseKeepingSleepTime}</value>
	</property>
	<property name="houseKeepingTestSql">
		<value>${jdbc.houseKeepingTestSql}</value>
	</property>
	<property name="testBeforeUse">
		<value>${jdbc.testBeforeUse}</value>
	</property>
	<property name="alias">
		<value>${jdbc.alias}</value>
	</property>
	<property name="simultaneousBuildThrottle">
		<value>${jdbc.simultaneousBuildThrottle}</value>
	</property>
	<property name="trace">
		<value>${jdbc.trace}</value>
	</property>
</bean>
<bean id="sessionFactory"
	class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<property name="mappingResources">
		<!-- Add by B.G. Dexin Zhang at Mar 5 2009  -->
         <value>
           <!-- Hibernate数据源-->
           <!-- com/jsict/fmcg/vo/TArea.hbm.xml -->
	</value>
</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					${hibernate.dialect}
				</prop>
				<prop key="hibernate.show_sql">false</prop>
				<prop key="hibernate.generate_statistics">true</prop>
				<prop key="hibernate.connection.autocommit">false</prop>
				<prop key="hibernate.connection.release_mode">after_statement</prop>
				<prop key="hibernate.cache.use_second_level_cache">false</prop>
				<prop key="hibernate.max_fetch_depth">15</prop>
			</props>
		</property>
		<property name="eventListeners">
			<map>
				<entry key="merge">
					<bean
						class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener" />
				</entry>
			</map>
		</property>
	</bean>

事务管理者:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
</bean>
   
被管理的对象:
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
  <property name="transactionManager" ref="transactionManager" />
  <property name="transactionAttributeSource">
    <value>
     <!--com.jsict.fmcg.demo.TestAction.find*=PROPAGATION_REQUIRED,ISOLATION_DEFAULT,-ESPException,-RuntimeException-->
    </value>
  </property>
</bean>
<bean
		class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
		<property name="interceptorNames">
			<list>
				<value>transactionInterceptor</value>
			</list>
		</property>
	</bean>

	<bean
		class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
		<property name="transactionInterceptor" ref="transactionInterceptor" />
	</bean>

	<!-- Hibernate 3.0's JMX statistics service -->
	<!-- Implements the StatisticsServiceMBean management interface -->
	<bean name="broadengate:type=HibernateStatistics" class="org.hibernate.jmx.StatisticsService">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
分享到:
评论

相关推荐

    spring声明式事务配置

    ### 标题解读:Spring声明式事务配置 Spring框架提供了两种主要类型的事务管理方式:编程式事务管理和声明式事务管理。声明式事务管理通过XML配置或注解的形式定义事务边界,使得业务逻辑与事务控制分离。 ### ...

    Spring与Hibernate集成---声明式事务

    本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    总的来说,Spring 3和Hibernate 4结合使用声明式事务管理,使得我们无需在代码中显式调用事务开始、提交和回滚,而是通过注解和配置文件来声明事务的边界和行为。这种方式降低了代码的复杂度,提高了可维护性和可...

    Spring声明式事务配置管理方法

    以下是关于Spring声明式事务配置管理的详细说明: 1. **事务管理器配置**: 在`/WEB-INF/applicationContext.xml`文件中,我们需要定义一个事务管理器Bean。通常,对于Hibernate,我们会使用`...

    spring声明式事务管理配置方式

    在"spring声明式事务管理配置方式"中,主要涉及到以下几个关键知识点: 1. **Spring事务管理器(Transaction Manager)**: - Spring支持多种事务管理器,如DataSourceTransactionManager(用于JDBC事务)和...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    总之,Spring的声明式事务管理简化了事务处理,降低了代码的复杂性,而Hibernate的编程式事务管理则提供了更多的控制。在实际项目中,根据需求选择适合的事务管理方式,Spring和Hibernate的集成则为Java开发提供了...

    声明式事务控制spring+hibernate集成

    在IT行业中,尤其是在企业级应用开发中,声明式事务控制是一种常见的事务管理方式。它允许开发者通过配置,而不是代码来管理事务,使得事务处理更加简洁、易于维护。本主题聚焦于"声明式事务控制"在Spring 2.5与...

    Spring使用XML配置声明式事务

    在Spring框架中,声明式事务管理是实现事务处理...在博文"Spring使用XML配置声明式事务"中,作者详细讲解了每个步骤,并可能通过示例代码展示了如何实际应用这些配置,帮助读者更好地理解和掌握Spring声明式事务管理。

    spring学习之八--Hibernate编程式事务

    编程式事务管理是相对于声明式事务管理的一种方式,它允许开发者通过代码来显式控制事务的开始、提交、回滚等操作。这在某些特定场景下,如复杂的事务逻辑或需要自定义事务边界时,是很有用的。 首先,我们需要了解...

    spring3+hibernate4配置声明式事务管理(annotation方式)

    本实例工程展示了如何在Spring 3和Hibernate 4中使用注解进行声明式事务管理,这是一种高效且易于维护的方法。接下来,我们将详细讨论相关知识点。 1. **Spring框架**:Spring是一个全面的后端开发框架,它提供了...

    Spring 事务 (二) Spring 声明式事务 配置

    本文主要探讨Spring声明式事务管理的配置,这是Spring提供的一种简便的事务管理方式,允许开发者在不编写任何事务管理代码的情况下实现事务控制。这种方式极大地提高了代码的可维护性和可读性。 首先,我们要理解...

    spring3、 hibernate4 配置声明式事务管理(annotation方式)

    Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中显式地调用开始、提交、回滚等事务操作,而声明式事务管理则是通过配置或注解来定义事务边界,更加简洁且易于维护。 1....

    spring hibernate 事务管理学习笔记(二)

    总结起来,Spring和Hibernate的事务管理是企业级Java应用中的关键组件,它们提供了一种优雅的方式来处理复杂的数据库操作。理解并掌握其原理和配置,对于提升代码质量和系统稳定性具有重要意义。在阅读本文档...

    在Spring中配置Hibernate事务

    首先,我们需要理解Spring事务管理的两种基本模式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中显式调用开始、提交、回滚等事务操作,而声明式事务管理则通过在XML或注解中声明事务边界,让Spring...

    spring学习笔记(十六)-声明式事务的例子

    在Spring框架中,声明式事务管理是其核心特性之一,它允许开发者通过配置来控制事务的行为,而无需在代码中显式地管理事务的开始、提交、回滚等操作。这种方式使得事务管理更加灵活,也使得代码更加简洁,易于维护。...

    spring mvc+hibernate实现事务管理(配置文件版)

    在本项目中,我们需要配置Spring的事务管理器,一般有两种方式:编程式事务管理和声明式事务管理。声明式事务管理更为常见,它通过在服务层的方法上添加@Transactional注解,由Spring自动进行事务的开启、提交或回滚...

    Xml文件配置实现声明式事务管理

    在Spring框架中,声明式事务管理是一种非常重要的特性,它允许开发者通过XML配置或注解来定义事务的边界,而无需在业务代码中显式地管理事务。这种方式极大地提高了代码的可读性和可维护性。本篇文章将深入探讨如何...

    Spring Hibernate事务实例

    Spring的`TransactionInterceptor`是声明式事务管理的一部分,它基于AOP来处理事务。在Spring中,我们可以创建一个`PlatformTransactionManager`的实现,如`HibernateTransactionManager`,来管理Hibernate的事务。`...

    spring-hibernate-example1

    此外,Spring还能够管理事务,提供声明式事务处理,使得事务管理更加简洁。 HibernateExample可能包含了以下主要组成部分: 1. **实体类(Entity)**:这是与数据库表对应的对象,通过Hibernate的注解或者XML配置...

Global site tag (gtag.js) - Google Analytics