SpringBoot配置MySql数据库和Druid连接池

Posted Fire飞扬跋扈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot配置MySql数据库和Druid连接池相关的知识,希望对你有一定的参考价值。

1.pom文件增加相关依赖

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
       <version>5.0.4</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId>
       <version>1.1.0</version> </dependency>

2.mysql大家应该都很了解了,这里主要介绍一下druid连接池。之前的项目大多数都使用c3p0或者其他的连接池,这里使用druid连接池,好处就是可以监控数据库访问性能,druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。这里看一下配置文件下配置,这里使用的配置文件是application.yml

spring:          #表示该配置直接为Spring容器负责处理
  datasource:
      type: com.alibaba.druid.pool.DruidDataSource   #配置当前要使用的数据源的操作类型那个
      driver-class-name: org.gjt.mm.mysql.Driver       #配置MySQL的驱动程序类
      url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
      username: root
      password: 123456
      filters: stat,wall,log4j     #druid监控配置
      dbcp2:
        min-idle: 5         #数据库连接池的最小维持连接数
        initial-size: 5     #初始化提供的连接数
        max-total: 5          #最大的连接数
        max-wait-millis: 200        #等待连接获取的最大超时时间

3.最后,还需要增加一个druid的基本配置,这里直接上代码。

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 {
    @Bean
    public ServletRegistrationBean druidServlet() {// 主要实现web监控的配置处理
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(
                new StatViewServlet(), "/druid/*");//表示进行druid监控的配置处理操作
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1,129.168.1.11");//白名单
        servletRegistrationBean.addInitParameter("deny", "129.168.1.12");//黑名单
        servletRegistrationBean.addInitParameter("loginUsername", "root");//用户名
        servletRegistrationBean.addInitParameter("loginPassword", "root");//密码
        servletRegistrationBean.addInitParameter("resetEnable", "false");//是否可以重置数据源
        return servletRegistrationBean;

    }
    @Bean    //监控
    public FilterRegistrationBean filterRegistrationBean(){
        FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.addUrlPatterns("/*");//所有请求进行监控处理
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");//排除
        return filterRegistrationBean;
    }
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
}

我们可以看到这里的几个基本配置,白名单,黑名单,顾名思义就是设置谁可以访问,谁不能访问。用户名, 密码就不用多说了。最后我们登录druid监控,看一下,访问地址:http://localhost:port/druid/login.html,会看到如下界面

使用上面配置好的用户名密码进行登录,便实现了druid监控

 

以上是关于SpringBoot配置MySql数据库和Druid连接池的主要内容,如果未能解决你的问题,请参考以下文章

springboot同时配置mysql和SqlServer多个数据源

springboot同时配置mysql和SqlServer多个数据源

SpringBoot 配置双数据源MySQL、SQL Server

SpringBoot配置MySql数据库和Druid连接池

springboot 配置和使用例子: redis,MySql数据库,RabbitMQ消息队列

springboot2.0.3使用jpa和hibernate的方式配置多数据源(sqlite和mysql)