2011-03-03 13 views
8

Projeme ek açıklama tabanlı işlem yönetiminde kullanıyorum (@ Transactional ile bazı yöntemleri açıkla). İzolasyon seviyesini global olarak ayarlamak istiyorum (her bir Transactional ek açıklamaya argüman olarak koyarak değil).Yay ek açıklama tabanlı işlemlerde yalıtım düzeyini ayarlama

XML'de yapılandırılabilir mi? Şu anda benim xml yapılandırma

<tx:annotation-driven transaction-manager="txManager"/> 
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 

tx için nasılsa izolasyonunu eklemek mümkün mü içerir: ek açıklama güdümlü?

cevap

5

Spring'in işlem yönetimi, varsayılan olmayan bir işlem yalıtımı yapılandırırsanız (örneğin, bir Transactional açıklamada belirtilerek) Connection üzerindeki işlem yalıtımını ayarlar. Bağlantıların işlem yalıtımını yapılandırabilmenizi sağlarken, diğer mekanizmaların bağlantıların işlem yalıtımını değiştirmemesini sağlarsanız, o zaman global olarak uygulama tarafından kullanılan işlem yalıtımı ayarlanır.

<bean 
    id="dataSource" 
    class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}"/> 
    <property name="url" value="${jdbc.url}"/> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}"/> 
    <property name="defaultTransactionIsolation"> 
    <util:constant static-field="java.sql.Connection.TRANSACTION_READ_COMMITTED"/> 
    </property> 
</bean> 
:

Örneğin

Commons DBCP BasicDataSource sınıfı havuzundan geri bağlantıların hareket yalıtım ayarlamak için defaultTransactionIsolation özelliğini tanımlayan