diff --git a/src/main/java/com/ibeetl/starter/BeetlSqlSingleConfig.java b/src/main/java/com/ibeetl/starter/BeetlSqlSingleConfig.java index 4e282daf386bed9fcf3d4b012b3ee817df801a6b..5c1b42d771f45fb0e31e57e7f1aac6f65747dac1 100644 --- a/src/main/java/com/ibeetl/starter/BeetlSqlSingleConfig.java +++ b/src/main/java/com/ibeetl/starter/BeetlSqlSingleConfig.java @@ -11,14 +11,16 @@ import org.beetl.core.fun.ObjectUtil; import org.beetl.sql.core.ClasspathLoader; import org.beetl.sql.core.Interceptor; import org.beetl.sql.core.NameConversion; +import org.beetl.sql.core.SQLManager; import org.beetl.sql.core.db.DBStyle; import org.beetl.sql.ext.DebugInterceptor; import org.beetl.sql.ext.spring4.BeetlSqlDataSource; import org.beetl.sql.ext.spring4.SqlManagerFactoryBean; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; @@ -27,9 +29,10 @@ import org.springframework.context.annotation.Import; import org.springframework.core.env.Environment; @Configuration -@ConditionalOnBean(DataSource.class) +@ConditionalOnSingleCandidate(DataSource.class) @Conditional(BeetlSqlSingleCondition.class) @Import(BeetlMapperScannerRegister.class) +@AutoConfigureAfter({DataSourceAutoConfiguration.class}) public class BeetlSqlSingleConfig { @Autowired(required=false) @@ -39,9 +42,13 @@ public class BeetlSqlSingleConfig { @Autowired(required=false) ApplicationContext context; - - - + + + @Bean + @ConditionalOnMissingBean(SQLManager.class) + public SQLManager sqlManager(SqlManagerFactoryBean sqlManagerFactoryBean) throws Exception { + return sqlManagerFactoryBean.getObject(); + } @Bean(name = "sqlManagerFactoryBean") @ConditionalOnMissingBean(SqlManagerFactoryBean.class)