Spring事務超時時間可以通過以下兩種方式進行修改:
1. 使用@Transactional注解的timeout屬性:在需要使用事務的方法上添加@Transactional注解,并通過timeout屬性指定超時時間,單位為秒。例如,@Transactional(timeout = 10)表示事務超時時間為10秒。
@Transactional(timeout = 10) public void doSomething() { // 業務邏輯 }
2. 使用編程式事務管理:通過TransactionTemplate類手動管理事務,并通過setTimeout方法設置超時時間,單位為秒。例如:
@Autowired private PlatformTransactionManager transactionManager; public void doSomething() { TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager); transactionTemplate.setTimeout(10); transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) { // 業務邏輯 } }); }
無論使用哪種方式,事務超時時間都是指定的時間內,如果事務仍未完成,則事務將被回滾。需要根據實際情況設置合適的超時時間。