SpringBootでの例外のロールバックとトランザクションの使い方について教えてください。
Spring Bootの例外のロールバックとトランザクションの使用は、次の手順で実装できます。
- spring-boot-starter-data-jpaとspring-boot-starter-webの依存関係を追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- アプリケーションのエントリークラスに@EnableTransactionManagementアノテーションを追加して、トランザクション管理を有効にします。
@SpringBootApplication
@EnableTransactionManagement
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
}
- @Transactionalアノテーションをメソッドで使用すると、例外が発生した場合は自動的にトランザクションがロールバックされる:
@Service
public class YourService {
@Autowired
private YourRepository yourRepository;
@Transactional
public void saveYourEntity(YourEntity entity) {
yourRepository.save(entity);
}
}
- テストメソッドに@Rollbackアノテーションを使用して、カスタム例外のロールバックを実装できます。指定した例外がスローされると、トランザクションはロールバックされます。
@SpringBootTest
@Transactional
public class YourServiceTest {
@Autowired
private YourService yourService;
@Test
@Rollback(value = true, rollbackFor = Exception.class)
public void testSaveYourEntity() {
// 测试代码
}
}
上記の手順に従うことで、Spring Bootアプリケーションで例外のロールバックとトランザクションを使用することができます。