1212import org .bekit .common .transaction .support .EmptyTransactionManager ;
1313import org .bekit .common .transaction .support .SpringTransactionManager ;
1414import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
15+ import org .springframework .boot .autoconfigure .condition .ConditionalOnClass ;
1516import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
17+ import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingClass ;
1618import org .springframework .context .annotation .Configuration ;
1719import org .springframework .context .annotation .Import ;
1820import org .springframework .transaction .PlatformTransactionManager ;
@@ -29,21 +31,37 @@ public class CommonConfiguration {
2931 @ ConditionalOnMissingBean (TransactionManager .class )
3032 public static class TransactionManagerConfiguration {
3133 /**
32- * Spring事务管理器配置
34+ * PlatformTransactionManager存在
3335 */
3436 @ Configuration
35- @ ConditionalOnBean (PlatformTransactionManager .class )
36- @ Import (SpringTransactionManager .class )
37- public static class SpringTransactionManagerConfiguration {
37+ @ ConditionalOnClass (PlatformTransactionManager .class )
38+ public static class PlatformTransactionManagerClassExists {
39+ /**
40+ * Spring事务管理器配置
41+ */
42+ @ Configuration
43+ @ ConditionalOnBean (PlatformTransactionManager .class )
44+ @ Import (SpringTransactionManager .class )
45+ public static class SpringTransactionManagerConfiguration {
46+ }
47+
48+ /**
49+ * 空事务管理器配置
50+ */
51+ @ Configuration
52+ @ ConditionalOnMissingBean (PlatformTransactionManager .class )
53+ @ Import (EmptyTransactionManager .class )
54+ public static class EmptyTransactionManagerConfiguration {
55+ }
3856 }
3957
4058 /**
41- * 空事务管理器配置
59+ * PlatformTransactionManager不存在
4260 */
4361 @ Configuration
44- @ ConditionalOnMissingBean ( PlatformTransactionManager . class )
62+ @ ConditionalOnMissingClass ( "org.springframework.transaction.PlatformTransactionManager" )
4563 @ Import (EmptyTransactionManager .class )
46- public static class EmptyTransactionManagerConfiguration {
64+ public static class PlatformTransactionManagerClassNotExists {
4765 }
4866 }
4967}
0 commit comments