Spring宣言トランザクション構成の形式-Hibernateマルチトランザクション
データソース:
jdbc.properties
トランザクションマネージャ:
管理対象オブジェクト:
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>