diff --git a/druid-spring-boot-samples/src/main/java/com/github/trang/druid/config/SpringDataSourceConfig.java b/druid-spring-boot-samples/src/main/java/com/github/trang/druid/config/SpringDataSourceConfig.java index 027a21c..6f1485c 100644 --- a/druid-spring-boot-samples/src/main/java/com/github/trang/druid/config/SpringDataSourceConfig.java +++ b/druid-spring-boot-samples/src/main/java/com/github/trang/druid/config/SpringDataSourceConfig.java @@ -20,7 +20,7 @@ import java.util.Map; * @author trang */ @Configuration -@Profile("dynamic") +@Profile({"dynamic", "dynamic-dev"}) public class SpringDataSourceConfig { private static final Logger log = LoggerFactory.getLogger(SpringDataSourceConfig.class); diff --git a/druid-spring-boot-samples/src/main/resources/application.yml b/druid-spring-boot-samples/src/main/resources/application.yml index ff73748..2578768 100644 --- a/druid-spring-boot-samples/src/main/resources/application.yml +++ b/druid-spring-boot-samples/src/main/resources/application.yml @@ -25,7 +25,8 @@ spring: max-active: 10 max-wait: 30000 time-between-eviction-runs-millis: 60000 - min-evictable-idle-time-millis: 300000 + min-evictable-idle-time-millis: 1800000 + max-evictable-idle-time-millis: 25200000 validation-query: SELECT 1 test-while-idle: true test-on-borrow: false @@ -107,4 +108,29 @@ spring: two: name: two max-active: 25 - max-open-prepared-statements: 25 \ No newline at end of file + max-open-prepared-statements: 25 + +--- + +spring: + profiles: dev + datasource: + druid: + min-evictable-idle-time-millis: 100000 + max-evictable-idle-time-millis: 200000 + +--- + +spring: + profiles: dynamic-dev + autoconfigure: + exclude: + - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration + datasource: + druid: + min-evictable-idle-time-millis: 100000 + max-evictable-idle-time-millis: 200000 + one: + name: one + two: + name: two \ No newline at end of file diff --git a/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DevProfilesTests.java b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DevProfilesTests.java new file mode 100644 index 0000000..41e766f --- /dev/null +++ b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DevProfilesTests.java @@ -0,0 +1,27 @@ +package com.github.trang.druid.test; + +import com.alibaba.druid.pool.DruidDataSource; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ActiveProfiles; + +import static org.junit.Assert.assertEquals; + +/** + * 单数据源测试 + * + * @author trang + */ +@ActiveProfiles("dev") +public class DevProfilesTests extends BaseTest { + + @Autowired + private DruidDataSource dataSource; + + @Test + public void testSingleDataSource() { + assertEquals(100000, dataSource.getMinEvictableIdleTimeMillis()); + assertEquals(200000, dataSource.getMaxEvictableIdleTimeMillis()); + } + +} \ No newline at end of file diff --git a/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DynamicDataSourceTests.java b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DynamicDataSourceTests.java index 95fa223..0e5dfd2 100644 --- a/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DynamicDataSourceTests.java +++ b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DynamicDataSourceTests.java @@ -30,7 +30,8 @@ public class DynamicDataSourceTests extends BaseTest { assertEquals(50, firstDataSource.getMaxActive()); assertEquals(30000, firstDataSource.getMaxWait()); assertEquals(60000, firstDataSource.getTimeBetweenEvictionRunsMillis()); - assertEquals(300000, firstDataSource.getMinEvictableIdleTimeMillis()); + assertEquals(1800000, firstDataSource.getMinEvictableIdleTimeMillis()); + assertEquals(25200000, firstDataSource.getMaxEvictableIdleTimeMillis()); assertEquals("SELECT 1", firstDataSource.getValidationQuery()); assertEquals(true, firstDataSource.isTestWhileIdle()); assertEquals(false, firstDataSource.isTestOnBorrow()); @@ -46,7 +47,8 @@ public class DynamicDataSourceTests extends BaseTest { assertEquals(25, secondDataSource.getMaxActive()); assertEquals(30000, secondDataSource.getMaxWait()); assertEquals(60000, secondDataSource.getTimeBetweenEvictionRunsMillis()); - assertEquals(300000, secondDataSource.getMinEvictableIdleTimeMillis()); + assertEquals(1800000, secondDataSource.getMinEvictableIdleTimeMillis()); + assertEquals(25200000, secondDataSource.getMaxEvictableIdleTimeMillis()); assertEquals("SELECT 1", secondDataSource.getValidationQuery()); assertEquals(true, secondDataSource.isTestWhileIdle()); assertEquals(false, secondDataSource.isTestOnBorrow()); diff --git a/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DynamicDevProfilesTests.java b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DynamicDevProfilesTests.java new file mode 100644 index 0000000..163c65c --- /dev/null +++ b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/DynamicDevProfilesTests.java @@ -0,0 +1,38 @@ +package com.github.trang.druid.test; + +import com.alibaba.druid.pool.DruidDataSource; +import com.github.trang.druid.config.DynamicDataSource; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ActiveProfiles; + +import static org.junit.Assert.assertEquals; + +/** + * 动态数据源测试 + * + * @author trang + */ +@ActiveProfiles("dynamic-dev") +public class DynamicDevProfilesTests extends BaseTest { + + @Autowired + private DruidDataSource firstDataSource; + @Autowired + private DruidDataSource secondDataSource; + @Autowired + private DynamicDataSource dataSource; + + @Test + public void testFirstDataSource() { + assertEquals(100000, firstDataSource.getMinEvictableIdleTimeMillis()); + assertEquals(200000, firstDataSource.getMaxEvictableIdleTimeMillis()); + } + + @Test + public void testSecondDataSource() { + assertEquals(100000, secondDataSource.getMinEvictableIdleTimeMillis()); + assertEquals(200000, secondDataSource.getMaxEvictableIdleTimeMillis()); + } + +} \ No newline at end of file diff --git a/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/SingleDataSourceTests.java b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/SingleDataSourceTests.java index ef466e0..f6c98dc 100644 --- a/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/SingleDataSourceTests.java +++ b/druid-spring-boot-samples/src/test/java/com/github/trang/druid/test/SingleDataSourceTests.java @@ -18,18 +18,19 @@ public class SingleDataSourceTests extends BaseTest { @Test public void testSingleDataSource() { - assertEquals(dataSource.getInitialSize(), 1); - assertEquals(dataSource.getMinIdle(), 1); - assertEquals(dataSource.getMaxActive(), 10); - assertEquals(dataSource.getMaxWait(), 30000); - assertEquals(dataSource.getTimeBetweenEvictionRunsMillis(), 60000); - assertEquals(dataSource.getMinEvictableIdleTimeMillis(), 300000); - assertEquals(dataSource.getValidationQuery(), "SELECT 1"); - assertEquals(dataSource.isTestWhileIdle(), true); - assertEquals(dataSource.isTestOnBorrow(), false); - assertEquals(dataSource.isTestOnReturn(), false); - assertEquals(dataSource.getMaxPoolPreparedStatementPerConnectionSize(), 20); - assertEquals(dataSource.isUseGlobalDataSourceStat(), true); + assertEquals(1, dataSource.getInitialSize()); + assertEquals(1, dataSource.getMinIdle()); + assertEquals(10, dataSource.getMaxActive()); + assertEquals(30000, dataSource.getMaxWait()); + assertEquals(60000, dataSource.getTimeBetweenEvictionRunsMillis()); + assertEquals(1800000, dataSource.getMinEvictableIdleTimeMillis()); + assertEquals(25200000, dataSource.getMaxEvictableIdleTimeMillis()); + assertEquals("SELECT 1", dataSource.getValidationQuery()); + assertEquals(true, dataSource.isTestWhileIdle()); + assertEquals(false, dataSource.isTestOnBorrow()); + assertEquals(false, dataSource.isTestOnReturn()); + assertEquals(20, dataSource.getMaxPoolPreparedStatementPerConnectionSize()); + assertEquals(true, dataSource.isUseGlobalDataSourceStat()); } } \ No newline at end of file