- Configuração das dependências Maven
No arquivo pom.xml, adicione as seguintes dependências dentro da tag <dependencies>:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
- Configuração da fonte de dados no YAML
No arquivo application.yml, insira as configurações da fonte de dados. Ajuste a URL, usuário e senha conforme seu ambiente:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/seu_banco?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: sua_senha
druid:
initialSize: 5
minIdle: 5
maxActive: 8
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 30000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: true
poolPreparedStatements: true
filters: stat,wall,log4j,config
keepAlive: true
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
stat-view-servlet:
url-pattern: /druid/*
allow: 127.0.0.1
deny: 192.168.100.2
reset-enable: false
login-password: admin
login-username: 123456
max-pool-prepared-statement-per-connection-size: 20
- Criação da classe de configuração
Crie uma classe anotada com @Configuration para registrar manualmente o DataSource, o servlet de monitoramento e o filtro web:
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class DruidConfiguracoes {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource dataSource() {
return new DruidDataSource();
}
@Bean
public ServletRegistrationBean<StatViewServlet> servletDeMonitoramento() {
ServletRegistrationBean<StatViewServlet> registration = new ServletRegistrationBean<>(
new StatViewServlet(), "/druid/*");
Map<String, String> parametros = new HashMap<>();
parametros.put("loginUsername", "admin");
parametros.put("loginPassword", "123456");
parametros.put("allow", "");
parametros.put("resetEnable", "false");
registration.setInitParameters(parametros);
return registration;
}
@Bean
public FilterRegistrationBean<WebStatFilter> filtroEstatisticas() {
FilterRegistrationBean<WebStatFilter> registration = new FilterRegistrationBean<>();
registration.setFilter(new WebStatFilter());
registration.addUrlPatterns("/*");
Map<String, String> initParams = new HashMap<>();
initParams.put("exclusions", "*.js,*.css,/druid/*");
registration.setInitParameters(initParams);
return registration;
}
}
Após essas configurações, inicie a aplicação Spring Boot e acesse:
http://127.0.0.1:8080/druid/login.html
Informe as credenciais definidas (usuário: admin, senha: 123456) para visualizar o painel de monitoramento do Druid.