This is an automated email from the ASF dual-hosted git repository.
jianbin pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/incubator-seata.git
The following commit(s) were added to refs/heads/2.x by this push:
new c41ff620dd bugfix: resolve TransactionAutoConfiguration compatibility
with Spring Boot 4.x (#7839)
c41ff620dd is described below
commit c41ff620ddb9ecd3244c65d2c351dfbe3d01c273
Author: contrueCT <[email protected]>
AuthorDate: Wed Dec 10 14:00:34 2025 +0800
bugfix: resolve TransactionAutoConfiguration compatibility with Spring Boot
4.x (#7839)
---
changes/en-us/2.x.md | 1 +
changes/zh-cn/2.x.md | 1 +
.../org/apache/seata/config/AbstractConfigurationTest.java | 2 --
.../boot/autoconfigure/SeataSpringFenceAutoConfiguration.java | 10 ++++++++--
4 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/changes/en-us/2.x.md b/changes/en-us/2.x.md
index f13d4287a7..69400fc354 100644
--- a/changes/en-us/2.x.md
+++ b/changes/en-us/2.x.md
@@ -54,6 +54,7 @@ Add changes here for all PR submitted to the 2.x branch.
- [[#7771](https://github.com/apache/incubator-seata/pull/7771)] Shentongdata
xa mode should be hold the same connection
- [[#7785](https://github.com/apache/incubator-seata/pull/7785)] fix the
failure test
- [[#7796](https://github.com/apache/incubator-seata/pull/7796)] fix the NPE
on ConsulConfigurationTest method
+- [[#7839](https://github.com/apache/incubator-seata/pull/7839)] resolve
TransactionAutoConfiguration compatibility with Spring Boot 4.x
### optimize:
diff --git a/changes/zh-cn/2.x.md b/changes/zh-cn/2.x.md
index 37b09f08bb..31721ff4d7 100644
--- a/changes/zh-cn/2.x.md
+++ b/changes/zh-cn/2.x.md
@@ -54,6 +54,7 @@
- [[#7771](https://github.com/apache/incubator-seata/pull/7771)]
确保神通XA模式相同的事务使用相同的XAConnection
- [[#7785](https://github.com/apache/incubator-seata/pull/7785)] 修复失败的测试方法
- [[#7796](https://github.com/apache/incubator-seata/pull/7796)] 修复 Consul
监听器空值 NPE 问题
+- [[#7839](https://github.com/apache/incubator-seata/pull/7839)]
解决TransactionAutoConfiguration与Spring Boot 4.x的兼容性问题
### optimize:
diff --git
a/config/seata-config-core/src/test/java/org/apache/seata/config/AbstractConfigurationTest.java
b/config/seata-config-core/src/test/java/org/apache/seata/config/AbstractConfigurationTest.java
index dcf90dac14..560ed03d09 100644
---
a/config/seata-config-core/src/test/java/org/apache/seata/config/AbstractConfigurationTest.java
+++
b/config/seata-config-core/src/test/java/org/apache/seata/config/AbstractConfigurationTest.java
@@ -145,13 +145,11 @@ class AbstractConfigurationTest {
Assertions.assertEquals(defaultDuration, value);
}
-
@Test
void testGetConfigWithDefaultValue() {
String defaultValue = "default-value";
String value = configuration.getConfig("test.nonexistent.key",
defaultValue);
Assertions.assertEquals(defaultValue, value);
-
String valueCached = configuration.getConfig("test.nonexistent.key");
// due to configuration cache, may return default value instead of null
Assertions.assertNotNull(valueCached);
diff --git
a/seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataSpringFenceAutoConfiguration.java
b/seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataSpringFenceAutoConfiguration.java
index b37a53603f..a493776608 100644
---
a/seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataSpringFenceAutoConfiguration.java
+++
b/seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/java/org/apache/seata/spring/boot/autoconfigure/SeataSpringFenceAutoConfiguration.java
@@ -25,7 +25,6 @@ import
org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import
org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.core.Ordered;
@@ -42,7 +41,14 @@ import static
org.apache.seata.common.Constants.BEAN_NAME_SPRING_FENCE_CONFIG;
@ConditionalOnExpression("${seata.enabled:true}")
@ConditionalOnBean(type = {"javax.sql.DataSource",
"org.springframework.transaction.PlatformTransactionManager"})
@ConditionalOnMissingBean(SpringFenceConfig.class)
-@AutoConfigureAfter({SeataCoreAutoConfiguration.class,
TransactionAutoConfiguration.class})
+@AutoConfigureAfter(
+ value = {SeataCoreAutoConfiguration.class},
+ name = {
+ // Spring Boot 2.x, 3.x
+
"org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration",
+ // Spring Boot 4.x
+
"org.springframework.boot.transaction.autoconfigure.TransactionAutoConfiguration"
+ })
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
public class SeataSpringFenceAutoConfiguration {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]