update > version to 1.1.8 for spring boot 2.x

This commit is contained in:
lihengming
2018-02-08 20:40:50 +08:00
parent 9cf3f42f75
commit f02b3a6e98
15 changed files with 77 additions and 269 deletions
+5 -2
View File
@@ -1,4 +1,5 @@
# Druid Spring Boot Starter
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.alibaba/druid-spring-boot-starter/badge.svg)](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
+4 -2
View File
@@ -1,4 +1,5 @@
# Druid Spring Boot Starter
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.alibaba/druid-spring-boot-starter/badge.svg)](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
+8 -16
View File
@@ -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>
@@ -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");
@@ -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();
}
}
@@ -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();
}
}
@@ -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();
}
}
@@ -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();
@@ -13,7 +13,7 @@ public class UserServiceImpl implements UserService {
@Override
public User findById(Long id) {
return userDao.findOne(id);
return userDao.findById(id).get();
}
}
@@ -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);
}
}
@@ -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);
}
}
@@ -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
@@ -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