springによるトランザクションの開始アノテーション
Springによるトランザクションの開始方法には、XMLによる設定とアノテーションによる設定の2通りがあります。
- XML設定方式:
Spring の XML 設定ファイルにおいては、以下の設定を追加する必要があります。
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
@Transactionalアノテーションを、トランザクションを開始するメソッドに加えることでトランザクションの開始が可能になります。
- 訳注として
Springの設定クラスに`@EnableTransactionManagement`アノテーションを追加してトランザクション管理機能を有効化します。
トランザクションを実行するメソッドに@Transactionalアノテーションを付加するだけで、トランザクションを開始することができます。
サンプルコードのネイティブ化されたパラフレーズ:1 つのオプションのみが必要
@Configuration
@EnableTransactionManagement
public class AppConfig {
// 配置数据源等其他相关配置
@Bean
public DataSourceTransactionManager transactionManager() {
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource());
return transactionManager;
}
}
@Service
public class ProductService {
@Autowired
private ProductDao productDao;
@Transactional
public void saveProduct(Product product) {
// 业务逻辑操作
productDao.save(product);
}
}
2つ目の@Transactionalアノテーションは、トランザクションの隔離レベル、伝播動作、ロールバック規則などのトランザクションの動作を制御するために、いくつかのプロパティを設定できます。詳細は、Spring公式サイトの@Transactionalアノテーションに関する説明を参照してください。