spring datasource 配置及事務管理

jsjqjy發表於2009-10-10

首先配置 datasource

 我的資料來源配置 來自於tomcat下 conf/context.xml

   在這裡你可以配置資料來源資訊 :

context.xml 配置

 

<Resource name="jdbc/testDB" auth="Container" type="javax.sql.DataSource"
	   maxActive="100" maxIdle="30" maxWait="10000"
	   username="root" password="" driverClassName="com.mysql.jdbc.Driver"
	   url="jdbc:mysql://192.168.1.246:3306/TestDB?useUnicode=true&amp;characterEncoding=utf-8"/>

 

dbonfig.properties檔案 配置

jndiName=testDB

 

 

下面是applicationContextAction.xml配置檔案

 

<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>
					WEB-INF/classes/config/dbonfig.properties
				</value>
			</list>
		</property>
	</bean>
<!--jndiName來自 配置檔案-->
	<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName">
			<value>java:/comp/env/jdbc/${jndiName}</value>
		</property>
	</bean>

 事務配置

 

<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<!-- 將所有具有@Transactional註解的Bean自動配置為宣告式事務支援 -->
	<tx:annotation-driven transaction-manager="transactionManager" />

 

具體的DAO 及Service的配置  :設定注入

 

  <bean id="sampleDAO" class="com.test.dao.SampleDAOImplBG"
      autowire="byName" />
   <bean id="sampleDAOProxy"
      class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
      <property name="proxyInterfaces">
         <list>
            <value>com.test.dao.SampleDAO</value>
         </list>
      </property>
      <property name="target" ref="sampleDAO" />
      <property name="transactionManager" ref="transactionManager" />
      <property name="transactionAttributes">
         <props>
            <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
         </props>
      </property>
   </bean>
   <bean id="sampleService"
      class="com.test.business.SampleServiceImpl">
      <property name="sampleDAO" ref="sampleDAOProxy" />
   </bean>

 

 struts2 Action的配置:構造器注入

 

<bean id="SampletAction" class="com.test.web.SampleAction"
		scope="prototype">
	<constructor-arg ref="sampleService" />
</bean>

 其他配置 可以參考下面超鏈

 

http://topinking.iteye.com/blog/248839

 

其實spring的 宣告式事務管理配置,有5種方式 :下面是更為清晰的

 

根據代理機制的不同,總結了五種Spring事務的配置方式,配置檔案如下

 

http://jiake.iteye.com/blog/599418

 

 

相關文章