This commit is contained in:
trang
2017-07-20 15:22:42 +08:00
parent d24dfdcb9c
commit dfb97a4cb6
6 changed files with 111 additions and 17 deletions
@@ -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);
@@ -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
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
@@ -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());
}
}
@@ -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());
@@ -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());
}
}
@@ -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());
}
}