Spring Boot configuration data sources Druid

Spring Boot configuration data sources Druid

Druid Ali Baba is an open source project, the benefits of using this data source is that you can use the monitoring function, providing a simple background, you can monitor the data source

Configuration

Import coordinates

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid</artifactId>
   <version>1.1.10</version>
</dependency>
 
<!-- Log4j坐标 -->
<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
</dependency>

P.s.Note the use of this when the need to import log4jcoordinates, otherwise it will not start error

Druid switched in the configuration file source data

The following is an example file application.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://192.168.112.128:3306/jdbc
    initialization-mode: always
    type: com.alibaba.druid.pool.DruidDataSource
    # 主要是最后这一句
    #   数据源其他配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

Write configuration class

Write configuration class, the Druid into Ioc container, as well as providing Servlet Filter is turned on and monitoring functions

@Configuration
public class MyConfig {
 
   // 让配置文件中这个开头的作为数据源的属性
   @ConfigurationProperties(prefix = "spring.datasource")
   @Bean
   public DataSource druid(){
      return  new DruidDataSource();
   }
 
   //配置Druid的监控
   //1、配置一个管理后台的Servlet
   @Bean
   public ServletRegistrationBean statViewServlet(){
      // 指定访问/druid/* 的时候就是访问后台
      ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
      Map<String,String> initParams = new HashMap<>();
 
      initParams.put("loginUsername","admin");
      initParams.put("loginPassword","123456");
      initParams.put("allow","");//默认就是允许所有访问
 
      bean.setInitParameters(initParams);
      return bean;
   }
 
   //2、配置一个web监控的filter
   @Bean
   public FilterRegistrationBean webStatFilter(){
      FilterRegistrationBean bean = new FilterRegistrationBean();
      bean.setFilter(new WebStatFilter());
 
      Map<String,String> initParams = new HashMap<>();
      initParams.put("exclusions","*.js,*.css,/druid/*");
 
      bean.setInitParameters(initParams);
 
      bean.setUrlPatterns(Arrays.asList("/*"));
 
      return  bean;
   }
}
 
 
 

Guess you like

Origin www.cnblogs.com/LJingDev/p/12597566.html