首页   >   代码编程   >   JAVA开发

Spring Boot配置Druid数据源和使用教程

以前项目使用的是c3p0,了解到另外一个开源数据源框架阿里巴巴的druid,现在做新项目准备使用这个,记录一下使用步骤。主要是看中了他的强大的监控功能,SQL分析能力很强。如果项目出现SQL运行缓慢,效率不高的情况,可以通过它自带的web界面很快的进行问题SQL定位和分析。

项目环境:spring boot版本是2.1.3,数据库是MySQL。

一、简介

DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池。

二、使用

1、POM.xml文件,添加如下内容

        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!-- Mysql Start -->
        <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.1.10</version>
        </dependency>
        <!-- Mysql End -->

2、application.porperties

server.port = 7567
logging.level.root=INFO
spring.application.name = service-masterdb

spring.mvc.throw-exception-if-no-handler-found = true
spring.resources.add-mappings = false
spring.aop.proxy-target-class = true
spring.datasource.druid.driver-class-name = com.mysql.cj.jdbc.Driver

spring.datasource.druid.url = jdbc:mysql://192.168.0.19:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.druid.username = test
spring.datasource.druid.password = test123

spring.datasource.druid.initial-size = 5
spring.datasource.druid.min-idle = 5
spring.datasource.druid.max-active = 20
spring.datasource.druid.max-wait = 60000
spring.datasource.druid.time-between-eviction-runs-millis = 60000
spring.datasource.druid.min-evictable-idle-time-millis = 300000
spring.datasource.druid.validation-query = SELECT 1
spring.datasource.druid.validation-query-timeout = 1000
spring.datasource.druid.test-while-idle = true
spring.datasource.druid.test-on-borrow = false
spring.datasource.druid.test-on-return = false
spring.datasource.druid.pool-prepared-statements = true
spring.datasource.druid.max-pool-prepared-tatement-per-connection-size = 20
spring.datasource.druid.filters = stat,wall
spring.datasource.druid.connection-properties = druid.stat.mergeSql=true;druid.stat.slowSqlMills=5000
spring.datasource.druid.web-stat-filter.enable = true
spring.datasource.druid.web-stat-filter.url-pattern = /*
spring.datasource.druid.web-stat-filter.exclusions = *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/* 
#监控web配置,是否开启、用户名、密码
spring.datasource.druid.stat-view-servlet.enabled = true 
spring.datasource.druid.stat-view-servlet.reset-enable = true
spring.datasource.druid.stat-view-servlet.login-username = druid
spring.datasource.druid.stat-view-servlet.login-password = druid123 
spring.datasource.druid.stat-view-servlet.allow =
spring.datasource.druid.stat-view-servlet.deny =

mybatis.mapper-locations = classpath:mapper/*.xml

3、只需要这两个文件修改,druid的配置基本就完成了,下一步就可以配置持久层框架了,Mybatis、Hibernate等等

三、web监控界面

1、在application配置文件中开启监控

spring.datasource.druid.stat-view-servlet.enabled = true //是否开启web界面

spring.datasource.druid.stat-view-servlet.reset-enable = true

spring.datasource.druid.stat-view-servlet.login-username = druid //登录账号

spring.datasource.druid.stat-view-servlet.login-password = druid123 //登录密码

2、访问web界面,项目启动成功后,访问http://localhost:7567/druid/index.html

Spring Boot配置Druid数据源和使用教程

3、登录成功,进入web页面,这些个菜单就自己去挨个点一下看看,就不做过多介绍了。

Spring Boot配置Druid数据源和使用教程

四、进阶篇

数据库账号密码是一个比较敏感的信息,如果管理不当导致泄漏后果不堪设想。曾经就有过某公司的程序员把公司代码上传到GitHub上,此处省略一万字。数据库配置信息,其不管是用maven编译环境来管理,还是使用spring config或者Apollo配置中心管理,都存在开发人员知道生产环境账号密码的风险。当然了spring config和apollo有权限管理,可以做到开发环境配置和生产环境配置完全分离。

接下来我们就讲一下,Druid如何使用加密的数据库密码

1、制作秘钥和密码

进入druid的jar包所在目录,我们使用的druid版本是1.1.10,所以进入C:\Users\lk\.m2\repository\com\alibaba\druid\1.1.10\目录下,打开命令控制台,执行如下命令:

java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 数据库密码(需要替换),

如下截图:

Spring Boot配置Druid数据源和使用教程

执行之后如果是这个界面,说明制作完成。

Spring Boot配置Druid数据源和使用教程

保留好publicKey和password接下来将会用到。

2、修改application.porperties配置,更新如下配置。

spring.datasource.druid.password = (上一步生成的password)
spring.datasource.druid.filters = stat,wall,config
spring.datasource.druid.connection-properties = config.decrypt=true;config.decrypt.key=(上一步生成的publicKey)

QQ群Ⅰ: 686430774 (已满)

QQ群Ⅱ: 718410762 (已满)

QQ群Ⅲ: 638620451 (已满)

QQ群Ⅳ: 474195684 (已满)

QQ群Ⅴ: 463034360

如果文章有帮到你,可以考虑请博主喝杯咖啡!

分享到:

欢迎分享本文,转载请注明出处!

作者:孤灯听夜雨

发布时间:2019-05-28

永久地址:https://www.jiweichengzhu.com/article/70387ce8f1714ab489dc2a920872607f

评论