diff --git a/hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceAutoConfiguration.java b/hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceAutoConfiguration.java new file mode 100644 index 000000000..6b993ed6f --- /dev/null +++ b/hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceAutoConfiguration.java @@ -0,0 +1,39 @@ +package org.hswebframework.web.datasource.jta; + +import org.hswebframework.web.datasource.DynamicDataSourceService; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +import javax.sql.DataSource; +import java.sql.SQLException; + +/** + * TODO 完成注释 + * + * @author zhouhao + */ +@Configuration +public class AtomikosDataSourceAutoConfiguration { + + //默认数据源 + @Bean(initMethod = "init", destroyMethod = "destroy", value = "defaultDataSource") + @Primary + public AtomikosDataSourceBean defaultDataSource() { + return new AtomikosDataSourceBean(); + } + + @ConditionalOnMissingBean(JtaDataSourceStore.class) + @Bean + public MemoryJtaDataSourceStore memoryJtaDataSourceStore() { + return new MemoryJtaDataSourceStore(); + } + + @Bean + @ConditionalOnMissingBean(DynamicDataSourceService.class) + public JtaDynamicDataSourceService jtaDynamicDataSourceService(JtaDataSourceStore jtaDataSourceStore, DataSource dataSource) throws SQLException { + return new JtaDynamicDataSourceService(jtaDataSourceStore, dataSource); + } +} diff --git a/hsweb-datasource/hsweb-datasource-jta/src/main/resources/META-INF/spring.factories b/hsweb-datasource/hsweb-datasource-jta/src/main/resources/META-INF/spring.factories new file mode 100644 index 000000000..b047cf7b7 --- /dev/null +++ b/hsweb-datasource/hsweb-datasource-jta/src/main/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +# Auto Configure +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.hswebframework.web.datasource.jta.AtomikosDataSourceAutoConfiguration \ No newline at end of file