From accd432ac3cbbb6157bf83631ead7c8bbdd3ca03 Mon Sep 17 00:00:00 2001 From: witt Date: Thu, 22 Feb 2024 20:06:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20#I930JB=20transactionManager?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E7=BC=BA=E7=9C=81bean,=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/boot/FlexTransactionAutoConfiguration.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java b/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java index 32992267..56f903d5 100644 --- a/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java +++ b/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java @@ -20,11 +20,13 @@ import com.mybatisflex.spring.FlexTransactionManager; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.lang.NonNull; import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionManager; import org.springframework.transaction.annotation.TransactionManagementConfigurer; /** @@ -33,6 +35,7 @@ import org.springframework.transaction.annotation.TransactionManagementConfigure * @author michael */ @ConditionalOnClass(Db.class) +@ConditionalOnMissingBean(TransactionManager.class) @Configuration(proxyBeanMethods = false) @AutoConfigureAfter({MybatisFlexAutoConfiguration.class}) @AutoConfigureBefore({TransactionAutoConfiguration.class}) From 7d0d1638e3b12c6f4771338915fb6339cefdc561 Mon Sep 17 00:00:00 2001 From: witt Date: Fri, 23 Feb 2024 17:23:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20#I930JB=20FlexTransactionAutoConfig?= =?UTF-8?q?uration=20=E4=BC=98=E5=85=88=E7=BA=A7=E5=9C=A8DataSourceTransac?= =?UTF-8?q?tionManagerAutoConfiguration=E4=B9=8B=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spring/boot/FlexTransactionAutoConfiguration.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java b/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java index 56f903d5..364e985b 100644 --- a/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java +++ b/mybatis-flex-spring-boot-starter/src/main/java/com/mybatisflex/spring/boot/FlexTransactionAutoConfiguration.java @@ -19,11 +19,14 @@ import com.mybatisflex.core.row.Db; import com.mybatisflex.spring.FlexTransactionManager; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; import org.springframework.lang.NonNull; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionManager; @@ -37,10 +40,16 @@ import org.springframework.transaction.annotation.TransactionManagementConfigure @ConditionalOnClass(Db.class) @ConditionalOnMissingBean(TransactionManager.class) @Configuration(proxyBeanMethods = false) +@AutoConfigureOrder(FlexTransactionAutoConfiguration.PRECEDENCE) @AutoConfigureAfter({MybatisFlexAutoConfiguration.class}) -@AutoConfigureBefore({TransactionAutoConfiguration.class}) +@AutoConfigureBefore({TransactionAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class}) public class FlexTransactionAutoConfiguration implements TransactionManagementConfigurer { + /** + * 优先级 + */ + protected static final int PRECEDENCE = Ordered.LOWEST_PRECEDENCE - 10; + /** * 这里使用 final 修饰属性是因为:
*