您现在的位置是:网站首页 > 代码编程 > JAVA开发JAVA开发
【原】Spring Boot配置Druid数据源和使用教程
孤灯听夜雨 2019-05-28 围观() 评论() 点赞() 【JAVA开发】
简介:以前项目使用的是c3p0,了解到另外一个开源数据源框架“阿里巴巴的druid”,现在做新项目(springboot)准备使用这个druid数据源,记录一下整合配置的过程,以及它的SQL监控功能使用。
以前项目使用的是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
3、登录成功,进入web页面,这些个菜单就自己去挨个点一下看看,就不做过多介绍了。
四、进阶篇
数据库账号密码是一个比较敏感的信息,如果管理不当导致泄漏后果不堪设想。曾经就有过某公司的程序员把公司代码上传到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 数据库密码(需要替换),
如下截图:
执行之后如果是这个界面,说明制作完成。
保留好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)
看完文章,有任何疑问,请加入群聊一起交流!!!
很赞哦! ()
相关文章
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们