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]

Reply via email to