mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
update > version to 1.1.8 for spring boot 2.x
This commit is contained in:
@@ -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
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.1.6</version>
|
||||
<version>1.1.8</version>
|
||||
</dependency>
|
||||
```
|
||||
```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
|
||||
|
||||
@@ -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.
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.1.6</version>
|
||||
<version>1.1.8</version>
|
||||
</dependency>
|
||||
```
|
||||
```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
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.1.7</version>
|
||||
<version>1.1.8</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>druid-spring-boot-starter</name>
|
||||
<description>Spring Boot with Druid support,help you simplify Druid config in Spring Boot.</description>
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<properties>
|
||||
<druid.version>1.1.7</druid.version>
|
||||
<spring-boot.version>1.5.10.RELEASE</spring-boot.version>
|
||||
<spring-boot.version>2.0.0.RC1</spring-boot.version>
|
||||
</properties>
|
||||
|
||||
<developers>
|
||||
@@ -51,6 +51,7 @@
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
<version>2.0.0.RC1</version>
|
||||
</dependency>
|
||||
<!-- @ConfigurationProperties annotation processing (metadata for IDEs) -->
|
||||
<dependency>
|
||||
@@ -58,16 +59,7 @@
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-actuator</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
@@ -125,8 +117,8 @@
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.1</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
@@ -162,7 +154,7 @@
|
||||
<docencoding>UTF-8</docencoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<!--<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-gpg-plugin</artifactId>
|
||||
<executions>
|
||||
@@ -174,7 +166,7 @@
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugin>-->
|
||||
</plugins>
|
||||
</build>
|
||||
<distributionManagement>
|
||||
|
||||
+2
-4
@@ -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");
|
||||
|
||||
-69
@@ -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();
|
||||
}
|
||||
}
|
||||
-44
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
-55
@@ -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<DruidDataSource> {
|
||||
/**
|
||||
* 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();
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -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();
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ public class UserServiceImpl implements UserService {
|
||||
|
||||
@Override
|
||||
public User findById(Long id) {
|
||||
return userDao.findOne(id);
|
||||
return userDao.findById(id).get();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+27
-55
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -27,6 +27,6 @@ public class DruidFilterTestCase {
|
||||
@Test
|
||||
public void test() {
|
||||
List<Filter> filters = dataSource.getProxyFilters();
|
||||
assertThat(filters.size()).isEqualTo(4);
|
||||
assertThat(filters.size()).isEqualTo(3);
|
||||
}
|
||||
}
|
||||
|
||||
-2
@@ -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");
|
||||
|
||||
@@ -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
|
||||
|
||||
+5
-2
@@ -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之后不再支持继承的方式,每个数据源要分开配置哦
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user