From 0a9c5de77616f60d7bbfb58df4fe6a0e01fade4f Mon Sep 17 00:00:00 2001 From: zhouhao Date: Fri, 19 May 2017 11:05:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AtomikosDataSourceAutoConfiguration.java | 39 +++++++++++++++++++ .../main/resources/META-INF/spring.factories | 3 ++ 2 files changed, 42 insertions(+) create mode 100644 hsweb-datasource/hsweb-datasource-jta/src/main/java/org/hswebframework/web/datasource/jta/AtomikosDataSourceAutoConfiguration.java create mode 100644 hsweb-datasource/hsweb-datasource-jta/src/main/resources/META-INF/spring.factories 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