From f02b3a6e981dfa5813ab646f84cdd4b48f6da092 Mon Sep 17 00:00:00 2001
From: lihengming <89921218@qq.com>
Date: Thu, 8 Feb 2018 20:40:50 +0800
Subject: [PATCH] update > version to 1.1.8 for spring boot 2.x
---
druid-spring-boot-starter/README.md | 7 +-
druid-spring-boot-starter/README_EN.md | 6 +-
druid-spring-boot-starter/pom.xml | 24 ++----
.../DruidDataSourceAutoConfigure.java | 6 +-
.../actuator/ActuatorConfiguration.java | 69 ----------------
.../endpoint/DruidDataSourceMvcEndpoint.java | 44 ----------
.../metadata/DruidDataSourcePoolMetadata.java | 55 -------------
.../configurer/MultiDataSourceConfigurer.java | 5 +-
.../boot/demo/service/UserServiceImpl.java | 2 +-
.../testcase/DruidDataSourceTestCase.java | 82 ++++++-------------
.../boot/testcase/DruidFilterTestCase.java | 2 +-
.../DruidMultiDataSourceTestCase.java | 2 -
.../resources/application-filter.properties | 5 +-
.../application-multi-datasource.properties | 7 +-
.../src/test/resources/application.properties | 30 ++++---
15 files changed, 77 insertions(+), 269 deletions(-)
delete mode 100644 druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/ActuatorConfiguration.java
delete mode 100644 druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/endpoint/DruidDataSourceMvcEndpoint.java
delete mode 100644 druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/metadata/DruidDataSourcePoolMetadata.java
diff --git a/druid-spring-boot-starter/README.md b/druid-spring-boot-starter/README.md
index 9d147b8f2d..d1cc13e1e5 100644
--- a/druid-spring-boot-starter/README.md
+++ b/druid-spring-boot-starter/README.md
@@ -1,4 +1,5 @@
# Druid Spring Boot Starter
+[](https://maven-badges.herokuapp.com/maven-central/com.alibaba/druid-spring-boot-starter/)
## 中文 | [English](https://github.com/alibaba/druid/blob/master/druid-spring-boot-starter/README_EN.md)
Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。
@@ -11,12 +12,12 @@ Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Drui
com.alibaba
druid-spring-boot-starter
- 1.1.6
+ 1.1.8
```
```Gradle```
```xml
- compile 'com.alibaba:druid-spring-boot-starter:1.1.6'
+ compile 'com.alibaba:druid-spring-boot-starter:1.1.8'
```
2. 添加配置
@@ -111,6 +112,8 @@ spring.datasource.druid.two.max-active=20
spring.datasource.druid.two.max-wait=20000
...
```
+注意:Spring Boot 2.X 不支持继承的方式,多数据源的话每个数据源要分开配置哦
+
2. 创建数据源
```java
@Primary
diff --git a/druid-spring-boot-starter/README_EN.md b/druid-spring-boot-starter/README_EN.md
index 6f541bde21..a9681921e5 100644
--- a/druid-spring-boot-starter/README_EN.md
+++ b/druid-spring-boot-starter/README_EN.md
@@ -1,4 +1,5 @@
# Druid Spring Boot Starter
+[](https://maven-badges.herokuapp.com/maven-central/com.alibaba/druid-spring-boot-starter/)
## English | [中文](https://github.com/alibaba/druid/blob/master/druid-spring-boot-starter/README.md)
Spring Boot with Druid support, help you simplify Druid config in Spring Boot.
@@ -11,12 +12,12 @@ Spring Boot with Druid support, help you simplify Druid config in Spring Boot.
com.alibaba
druid-spring-boot-starter
- 1.1.6
+ 1.1.8
```
```Gradle```
```xml
- compile 'com.alibaba:druid-spring-boot-starter:1.1.6'
+ compile 'com.alibaba:druid-spring-boot-starter:1.1.8'
```
2. Add configuration properties.
```xml
@@ -105,6 +106,7 @@ spring.datasource.druid.two.max-active=20
spring.datasource.druid.two.max-wait=20000
...
```
+Warning: Spring Boot 2.X not support extents, please configure one by one.
2. Create DruidDataSource
```java
@Primary
diff --git a/druid-spring-boot-starter/pom.xml b/druid-spring-boot-starter/pom.xml
index a2068e47ac..c760c59a60 100644
--- a/druid-spring-boot-starter/pom.xml
+++ b/druid-spring-boot-starter/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.alibaba
druid-spring-boot-starter
- 1.1.7
+ 1.1.8
jar
druid-spring-boot-starter
Spring Boot with Druid support,help you simplify Druid config in Spring Boot.
@@ -12,7 +12,7 @@
1.1.7
- 1.5.10.RELEASE
+ 2.0.0.RC1
@@ -51,6 +51,7 @@
org.springframework.boot
spring-boot-autoconfigure
+ 2.0.0.RC1
@@ -58,16 +59,7 @@
spring-boot-configuration-processor
true
-
- org.springframework.boot
- spring-boot-actuator
- true
-
-
- org.springframework
- spring-webmvc
- true
-
+
javax.servlet
javax.servlet-api
@@ -125,8 +117,8 @@
maven-compiler-plugin
2.1
- 1.7
- 1.7
+ 1.8
+ 1.8
@@ -162,7 +154,7 @@
UTF-8
-
+
diff --git a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java b/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java
index 5b0bb1e53b..c8ac158acc 100644
--- a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java
+++ b/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/DruidDataSourceAutoConfigure.java
@@ -18,7 +18,6 @@ package com.alibaba.druid.spring.boot.autoconfigure;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSource;
-import com.alibaba.druid.spring.boot.autoconfigure.actuator.ActuatorConfiguration;
import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
import com.alibaba.druid.spring.boot.autoconfigure.stat.DruidFilterConfiguration;
import com.alibaba.druid.spring.boot.autoconfigure.stat.DruidSpringAopConfiguration;
@@ -46,13 +45,12 @@ import org.springframework.context.annotation.Import;
@Import({DruidSpringAopConfiguration.class,
DruidStatViewServletConfiguration.class,
DruidWebStatFilterConfiguration.class,
- DruidFilterConfiguration.class,
- ActuatorConfiguration.class})
+ DruidFilterConfiguration.class})
public class DruidDataSourceAutoConfigure {
private static final Logger LOGGER = LoggerFactory.getLogger(DruidDataSourceAutoConfigure.class);
- @Bean
+ @Bean(initMethod = "init")
@ConditionalOnMissingBean
public DataSource dataSource() {
LOGGER.info("Init DruidDataSource");
diff --git a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/ActuatorConfiguration.java b/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/ActuatorConfiguration.java
deleted file mode 100644
index 7dc3cddd79..0000000000
--- a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/ActuatorConfiguration.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 1999-2017 Alibaba Group Holding Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.druid.spring.boot.autoconfigure.actuator;
-
-import javax.sql.DataSource;
-
-import com.alibaba.druid.pool.DruidDataSource;
-import com.alibaba.druid.spring.boot.autoconfigure.actuator.endpoint.DruidDataSourceMvcEndpoint;
-import com.alibaba.druid.spring.boot.autoconfigure.actuator.metadata.DruidDataSourcePoolMetadata;
-
-import org.springframework.boot.actuate.condition.ConditionalOnEnabledEndpoint;
-import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
-import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata;
-import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvider;
-import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadataProvidersConfiguration;
-import org.springframework.context.annotation.Bean;
-
-/**
- * @author lihengming [89921218@qq.com]
- *
- * Spring Boot Actuator support.
- */
-public class ActuatorConfiguration {
- /**
- * Register the {@link DataSourcePoolMetadataProvider} instances to support DataSource metrics.
- *
- * @see DataSourcePoolMetadataProvidersConfiguration
- */
- @Bean
- public DataSourcePoolMetadataProvider druidDataSourcePoolMetadataProvider() {
- return new DataSourcePoolMetadataProvider() {
- @Override
- public DataSourcePoolMetadata getDataSourcePoolMetadata(DataSource dataSource) {
- if (dataSource instanceof DruidDataSource) {
- return new DruidDataSourcePoolMetadata((DruidDataSource)dataSource);
- }
- return null;
- }
- };
- }
-
- /**
- * Register DruidDataSourceMvcEndpoint to support Spring Boot Actuator Endpoints.
- *
- * @see MvcEndpoint
- */
- @Bean
- @ConditionalOnMissingBean
- @ConditionalOnWebApplication
- @ConditionalOnEnabledEndpoint("druid")
- public DruidDataSourceMvcEndpoint druidDataSourceMvcEndpoint() {
- return new DruidDataSourceMvcEndpoint();
- }
-}
diff --git a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/endpoint/DruidDataSourceMvcEndpoint.java b/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/endpoint/DruidDataSourceMvcEndpoint.java
deleted file mode 100644
index 7da83b0e57..0000000000
--- a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/endpoint/DruidDataSourceMvcEndpoint.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 1999-2017 Alibaba Group Holding Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.druid.spring.boot.autoconfigure.actuator.endpoint;
-
-import com.alibaba.druid.stat.DruidStatManagerFacade;
-
-import org.springframework.boot.actuate.endpoint.mvc.AbstractMvcEndpoint;
-import org.springframework.boot.actuate.endpoint.mvc.ActuatorMediaTypes;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-/**
- * @author lihengming [89921218@qq.com]
- */
-@ConfigurationProperties(prefix = "endpoints.druid")
-public class DruidDataSourceMvcEndpoint extends AbstractMvcEndpoint {
-
- public DruidDataSourceMvcEndpoint() {
- super("/actuator/druid", true);
- }
-
- @ResponseBody
- @GetMapping( produces = {ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON_VALUE,
- MediaType.APPLICATION_JSON_VALUE})
- public Object invoke() {
- return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
- }
-
-}
\ No newline at end of file
diff --git a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/metadata/DruidDataSourcePoolMetadata.java b/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/metadata/DruidDataSourcePoolMetadata.java
deleted file mode 100644
index cb868f41fa..0000000000
--- a/druid-spring-boot-starter/src/main/java/com/alibaba/druid/spring/boot/autoconfigure/actuator/metadata/DruidDataSourcePoolMetadata.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 1999-2017 Alibaba Group Holding Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.alibaba.druid.spring.boot.autoconfigure.actuator.metadata;
-
-import com.alibaba.druid.pool.DruidDataSource;
-
-import org.springframework.boot.autoconfigure.jdbc.metadata.AbstractDataSourcePoolMetadata;
-import org.springframework.boot.autoconfigure.jdbc.metadata.DataSourcePoolMetadata;
-
-/**
- * @author lihengming [89921218@qq.com]
- */
-public class DruidDataSourcePoolMetadata extends AbstractDataSourcePoolMetadata {
- /**
- * Create an instance with the data source to use.
- *
- * @param dataSource the data source
- */
- public DruidDataSourcePoolMetadata(DruidDataSource dataSource) {
- super(dataSource);
- }
-
- @Override
- public Integer getActive() {
- return getDataSource().getActiveCount();
- }
-
- @Override
- public Integer getMax() {
- return getDataSource().getMaxActive();
- }
-
- @Override
- public Integer getMin() {
- return getDataSource().getMinIdle();
- }
-
- @Override
- public String getValidationQuery() {
- return getDataSource().getValidationQuery();
- }
-}
diff --git a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/configurer/MultiDataSourceConfigurer.java b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/configurer/MultiDataSourceConfigurer.java
index 7235a0aa5a..0b61ca5ff7 100644
--- a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/configurer/MultiDataSourceConfigurer.java
+++ b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/configurer/MultiDataSourceConfigurer.java
@@ -13,12 +13,13 @@ import javax.sql.DataSource;
@Profile("multi-datasource")
public class MultiDataSourceConfigurer {
@Primary
- @Bean
+ @Bean(initMethod = "init")
@ConfigurationProperties("spring.datasource.druid.one")
public DataSource dataSourceOne(){
return DruidDataSourceBuilder.create().build();
}
- @Bean
+
+ @Bean(initMethod = "init")
@ConfigurationProperties("spring.datasource.druid.two")
public DataSource dataSourceTwo(){
return DruidDataSourceBuilder.create().build();
diff --git a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/service/UserServiceImpl.java b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/service/UserServiceImpl.java
index 3d0b5843a5..07d24d4774 100644
--- a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/service/UserServiceImpl.java
+++ b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/demo/service/UserServiceImpl.java
@@ -13,7 +13,7 @@ public class UserServiceImpl implements UserService {
@Override
public User findById(Long id) {
- return userDao.findOne(id);
+ return userDao.findById(id).get();
}
}
diff --git a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidDataSourceTestCase.java b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidDataSourceTestCase.java
index 91625369b9..0bde4fcac6 100644
--- a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidDataSourceTestCase.java
+++ b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidDataSourceTestCase.java
@@ -17,12 +17,18 @@ package com.alibaba.druid.spring.boot.testcase;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
+import com.alibaba.druid.spring.boot.demo.DemoApplication;
+
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.util.EnvironmentTestUtils;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.test.context.junit4.SpringRunner;
+import javax.annotation.Resource;
import javax.sql.DataSource;
import static org.assertj.core.api.Assertions.assertThat;
@@ -30,69 +36,35 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* @author lihengming [89921218@qq.com]
*/
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = DemoApplication.class)
public class DruidDataSourceTestCase {
- private static final String PREFIX = "spring.datasource.druid.";
-
- private final AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
+ @Resource
+ private DruidDataSource dataSource;
@Test
public void testDataSourceExists() throws Exception {
- this.context.register(DruidDataSourceConfiguration.class);
- this.context.refresh();
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "url=jdbc:h2:file:./demo-db");
- assertThat(this.context.getBean(DataSource.class)).isNotNull();
- assertThat(this.context.getBean(DruidDataSource.class)).isNotNull();
+ assertThat(dataSource).isNotNull();
}
@Test
public void testDataSourcePropertiesOverridden() throws Exception {
- this.context.register(DruidDataSourceConfiguration.class);
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "url=jdbc:h2:file:./demo-db");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "initial-size=2");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "max-active=30");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "min-idle=2");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "max-wait=1234");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "pool-prepared-statements=true");
- //EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "max-open-prepared-statements=5");//Duplicated with following
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "max-pool-prepared-statement-per-connection-size=5");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "validation-query=select 1");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "validation-query-timeout=1");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "test-on-borrow=true");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "test-while-idle=true");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "test-on-return=true");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "time-between-eviction-runs-millis=10000");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "min-evictable-idle-time-millis=30001");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000");
- EnvironmentTestUtils.addEnvironment(this.context, PREFIX + "async-close-connection-enable=true");
-
- this.context.refresh();
- DruidDataSource ds = this.context.getBean(DruidDataSource.class);
-
- assertThat(ds.getUrl()).isEqualTo("jdbc:h2:file:./demo-db");
- assertThat(ds.getInitialSize()).isEqualTo(2);
- assertThat(ds.getMaxActive()).isEqualTo(30);
- assertThat(ds.getMinIdle()).isEqualTo(2);
- assertThat(ds.getMaxWait()).isEqualTo(1234);
- assertThat(ds.isPoolPreparedStatements()).isTrue();
- //assertThat(ds.getMaxOpenPreparedStatements()).isEqualTo(5); //Duplicated with following
- assertThat(ds.getMaxPoolPreparedStatementPerConnectionSize()).isEqualTo(5);
- assertThat(ds.getValidationQuery()).isEqualTo("select 1");
- assertThat(ds.getValidationQueryTimeout()).isEqualTo(1);
- assertThat(ds.isTestWhileIdle()).isTrue();
- assertThat(ds.isTestOnBorrow()).isTrue();
- assertThat(ds.isTestOnReturn()).isTrue();
- assertThat(ds.getTimeBetweenEvictionRunsMillis()).isEqualTo(10000);
- assertThat(ds.getMinEvictableIdleTimeMillis()).isEqualTo(30001);
- assertThat(ds.getConnectProperties().size()).isEqualTo(2);
- assertThat(ds.isAsyncCloseConnectionEnable()).isEqualTo(true);
- }
-
-
- @Configuration
- @Import(DruidDataSourceAutoConfigure.class)
- protected static class DruidDataSourceConfiguration {
-
-
+ assertThat(dataSource.getUrl()).isEqualTo("jdbc:h2:file:./demo-db");
+ assertThat(dataSource.getInitialSize()).isEqualTo(2);
+ assertThat(dataSource.getMaxActive()).isEqualTo(30);
+ assertThat(dataSource.getMinIdle()).isEqualTo(2);
+ assertThat(dataSource.getMaxWait()).isEqualTo(1234);
+ assertThat(dataSource.isPoolPreparedStatements()).isTrue();
+ //assertThat(dataSource.getMaxOpenPreparedStatements()).isEqualTo(5); //Duplicated with following
+ assertThat(dataSource.getMaxPoolPreparedStatementPerConnectionSize()).isEqualTo(5);
+ assertThat(dataSource.getValidationQuery()).isEqualTo("select 1");
+ assertThat(dataSource.getValidationQueryTimeout()).isEqualTo(1);
+ assertThat(dataSource.isTestWhileIdle()).isTrue();
+ assertThat(dataSource.isTestOnBorrow()).isTrue();
+ assertThat(dataSource.isTestOnReturn()).isTrue();
+ assertThat(dataSource.getTimeBetweenEvictionRunsMillis()).isEqualTo(10000);
+ assertThat(dataSource.getMinEvictableIdleTimeMillis()).isEqualTo(30001);
+ assertThat(dataSource.isAsyncCloseConnectionEnable()).isEqualTo(true);
}
}
diff --git a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidFilterTestCase.java b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidFilterTestCase.java
index 416dd0128b..58598fb176 100644
--- a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidFilterTestCase.java
+++ b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidFilterTestCase.java
@@ -27,6 +27,6 @@ public class DruidFilterTestCase {
@Test
public void test() {
List filters = dataSource.getProxyFilters();
- assertThat(filters.size()).isEqualTo(4);
+ assertThat(filters.size()).isEqualTo(3);
}
}
diff --git a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidMultiDataSourceTestCase.java b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidMultiDataSourceTestCase.java
index bfdb5ad813..61f9e49e27 100644
--- a/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidMultiDataSourceTestCase.java
+++ b/druid-spring-boot-starter/src/test/java/com/alibaba/druid/spring/boot/testcase/DruidMultiDataSourceTestCase.java
@@ -44,7 +44,6 @@ public class DruidMultiDataSourceTestCase {
@Test
public void testDataSourceOne() throws SQLException {
- dataSourceOne.init();
assertThat(dataSourceOne.getUrl()).isEqualTo("jdbc:h2:file:./demo-db");
assertThat(dataSourceOne.getUsername()).isEqualTo("sa");
@@ -58,7 +57,6 @@ public class DruidMultiDataSourceTestCase {
}
@Test
public void testDataSourceTwo() throws SQLException {
- dataSourceTwo.init();
assertThat(dataSourceTwo.getUrl()).isEqualTo("jdbc:h2:file:./demo-db");
assertThat(dataSourceTwo.getUsername()).isEqualTo("sa");
diff --git a/druid-spring-boot-starter/src/test/resources/application-filter.properties b/druid-spring-boot-starter/src/test/resources/application-filter.properties
index aa19066789..5c041eb0d3 100644
--- a/druid-spring-boot-starter/src/test/resources/application-filter.properties
+++ b/druid-spring-boot-starter/src/test/resources/application-filter.properties
@@ -1,4 +1,4 @@
-# 只有下面三个是必填项,其他配置不是必须的
+# 只有下面三个是必填项(使用内嵌数据库的话这三个也可以不用填,会使用默认配置),其他配置不是必须的
spring.datasource.url=jdbc:h2:file:./demo-db
spring.datasource.username=sa
spring.datasource.password=sa
@@ -8,7 +8,8 @@ spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.config.enabled=true
spring.datasource.druid.filter.encoding.enabled=true
-spring.datasource.druid.filter.wall.enabled=true
+#spring.datasource.druid.filter.wall.enabled=true
+
# JPA
diff --git a/druid-spring-boot-starter/src/test/resources/application-multi-datasource.properties b/druid-spring-boot-starter/src/test/resources/application-multi-datasource.properties
index 2c9120e4d9..16b56d300a 100644
--- a/druid-spring-boot-starter/src/test/resources/application-multi-datasource.properties
+++ b/druid-spring-boot-starter/src/test/resources/application-multi-datasource.properties
@@ -1,4 +1,4 @@
-# 只有下面三个是必填项,其他配置不是必须的
+# 只有下面三个是必填项(使用内嵌数据库的话这三个也可以不用填,会使用默认配置),其他配置不是必须的
spring.datasource.url=jdbc:h2:file:./demo-db
spring.datasource.username=sa
spring.datasource.password=sa
@@ -8,13 +8,14 @@ spring.datasource.driver-class-name=org.h2.Driver
# Druid 数据源配置,继承spring.datasource.* 配置,相同则覆盖
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=5
-spring.datasource.druid.aop-patterns=com.alibaba.druid.spring.boot.demo.service.*
# Druid 数据源 1 配置,继承spring.datasource.druid.* 配置,相同则覆盖
+spring.datasource.druid.one.initial-size=5
spring.datasource.druid.one.max-active=10
spring.datasource.druid.one.max-wait=10000
# Druid 数据源 2 配置,继承spring.datasource.druid.* 配置,相同则覆盖
+spring.datasource.druid.two.initial-size=5
spring.datasource.druid.two.max-active=20
spring.datasource.druid.two.max-wait=20000
@@ -25,3 +26,5 @@ spring.jpa.hibernate.ddl-auto=create-drop
# 更多配置属性见 DruidDataSource 内成员变量(只要有set方法便支持),或者根据IDE提示,或者查看官方文档
# 注:配置文件可以根据习惯更换为 .yml
+
+############强烈注意:Spring Boot 2.0之后不再支持继承的方式,每个数据源要分开配置哦
diff --git a/druid-spring-boot-starter/src/test/resources/application.properties b/druid-spring-boot-starter/src/test/resources/application.properties
index 3ba448fb97..31a15c2b2a 100644
--- a/druid-spring-boot-starter/src/test/resources/application.properties
+++ b/druid-spring-boot-starter/src/test/resources/application.properties
@@ -1,4 +1,4 @@
-# 只有下面三个是必填项(使用内嵌数据库的话这三个也可以不用填),其他配置不是必须的
+# 只有下面三个是必填项(使用内嵌数据库的话这三个也可以不用填,会使用默认配置),其他配置不是必须的
spring.datasource.url=jdbc:h2:file:./demo-db
spring.datasource.username=sa
spring.datasource.password=sa
@@ -6,12 +6,23 @@ spring.datasource.password=sa
spring.datasource.driver-class-name=org.h2.Driver
#Druid 数据源配置,继承spring.datasource.* 配置,相同则覆盖
-spring.datasource.druid.username=sa
-spring.datasource.druid.password=sa
-spring.datasource.druid.initial-size=5
-spring.datasource.druid.max-active=10
-spring.datasource.druid.min-evictable-idle-time-millis=100000
+spring.datasource.druid.initial-size=2
+spring.datasource.druid.max-active=30
+spring.datasource.druid.min-idle=2
+spring.datasource.druid.max-wait=1234
+spring.datasource.druid.pool-prepared-statements=true
+spring.datasource.druid.max-pool-prepared-statement-per-connection-size=5
+#spring.datasource.druid.max-open-prepared-statements= #等价于上面的max-pool-prepared-statement-per-connection-size
spring.datasource.druid.validation-query=select 1
+spring.datasource.druid.validation-query-timeout=1
+spring.datasource.druid.test-on-borrow=true
+spring.datasource.druid.test-on-return=true
+spring.datasource.druid.test-while-idle=true
+spring.datasource.druid.time-between-eviction-runs-millis=10000
+spring.datasource.druid.min-evictable-idle-time-millis=30001
+spring.datasource.druid.async-close-connection-enable=true
+
+
spring.datasource.druid.aop-patterns=com.alibaba.druid.spring.boot.demo.service.*
# 自定义StatFilter 配置 其他 Filter 不再演示
@@ -25,11 +36,6 @@ spring.jpa.hibernate.ddl-auto=create-drop
# 更多配置属性见 DruidDataSource 内成员变量(只要有set方法便支持),或者根据IDE提示,或者查看官方文档
-# 启用endpoint,默认访问地址:/actuator/druid,可以使用endpoints.druid.path=自定义终端地址
-endpoints.druid.enabled=true
-# 默认需要安全认证才可以访问,可以用下面两种方法之一来禁用安全认证,详情见 Spring Boot 官方文档
-endpoints.druid.sensitive=false
-# management.security.enabled=false
-# 注:配置文件可以根据习惯更换为 .yml
+