设为首页 加入收藏

TOP

SpringBoot中使用阿里巴巴Druid数据源,监控sql等实例讲解(一)
2018-04-13 06:06:29 】 浏览:133
Tags:SpringBoot 使用 阿里巴巴 Druid 数据源 监控 sql 实例 讲解

前言

近来项目基本都是基于 SpringBoot 的,同理,使用 Druid 作为数据源,也是很简单的操作、原理

代码

这里写图片描述

做了一个简单 CRUD 来测试 sql,但是都不是重点,这里重点在于数据源的配置

1.DruidConfig.java

package com.cun.config;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

import javax.sql.DataSource;

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 com.alibaba.druid.pool.DruidDataSource; //这个包容易导入错误
import com.alibaba.druid.support.http.StatViewServlet; //这个包容易导入错误
import com.alibaba.druid.support.http.WebStatFilter; //这个包容易导入错误

@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid() {
        return new DruidDataSource();
    }

    // 配置Druid的监控
    // 1、配置一个管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");

        Map
  
    initParams = new HashMap<>();
        // 监控页面登录用户名  

        initParams.put("loginUsername", "admin");

        // 监控页面登录用户密码
        initParams.put("loginPassword", "123456");

        // ip白名单(没有配置或者为空,则允许所有访问)
        initParams.put("allow", "");

        // ip黑名单(如果某个ip同时存在,deny优先于allow)
        initParams.put("deny", "");
        bean.setInitParameters(initParams);
        return bean;
    }

    // 2、配置一个web监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter() {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());

        Map
   
     initParams = new HashMap<>(); // 不拦截的静态资源 initParams.put("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"); bean.setInitParameters(initParams); // 拦截所有的请求 bean.setUrlPatterns(Arrays.asList("/*")); return bean; } } 
   
  

2.SpringBoot 项目基本配置 application.yml

server:
  port: 80 #为了以后访问项目不用写端口号
  context-path: / #为了以后访问项目不用写项目名
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123
    type: com.alibaba.druid.pool.DruidDataSource  #改变默认数据源 c3p0 为 Druid
  jpa: 
    hibernate:
      ddl-auto: update  #数据库同步代码
    show-sql: true      #dao操作时,显示sql语句

4.Druid 基本配置 application.properties

# 初始化大小,最小,最大  
spring.datasource.initialSize=5  
spring.datasource.minIdle=5  
spring.datasource.maxActive=20  
# 配置获取连接等待超时的时间  
spring.datasource.maxWait=60000  
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒  
spring.datasource.timeBetweenEvictionRunsMillis=60000  
# 配置一个连接在池中最小生存的时间,单位是毫秒  
spring.datasource.minEvictableIdleTimeMillis=300000  
# 校验SQL,Oracle配置 spring.datasource.validationQuery=SELECT 1 FROM DUAL,如果不配validationQuery项,则下面三项配置无用  
spring.datasource.validationQuery=SELECT 'x'  
spring.datasource.testWhileIdle=true  
spring.datasource.testOnBorrow=false  
spring.datasource.testOnReturn=false  
# 打开PSCache,并且指定每个连接上PSCache的大小  
spring.dat
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇理解MySQL主从复制之realy_log_re.. 下一篇MySQL5.7主从复制-半同步复制搭建..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目