mybatis英语发音

在SpringBoot中配置 Druid 数据源及密码加密的方法

前文集成 MyBatis Plus,实现了一组增删改查接口。在启动服务时,从控制台中可以看出 Spring Boot 默认使用 Hikari 作为数据库连接池,Hikari性能很优秀。在国内使用较多的连接池还属阿里开源的 Druid,中文发音为德鲁伊。Druid 结合了 C3P0、DBCP 等 DB 池的优点,同时还加入了日志监控,可以很好的监控 DB 池连接和 SQL 的执行情况。

1 集成 Druid

在 Spring Boot 中集成 Druid 可通过三种方式实现:

纯 yml 方式:在 yml 中配置连接池信息和druid 有关参数即可;Java Config 方式:编写配置类,在配置类中创建 druid 所需的实例,通过注解 @configuration 集成 Druid;注解方式:通过 @WebServlet、WebFilter、@ServletComponentScan等注解集成。

如果使用到多数据源,需要采用后面两种方式来配置。我们这个demo里面只有一个数据源,使用 yml 方式配置就行了。

1.1 添加依赖

Druid 与 Spring Boot 整合可以使用封装好的 starter: druid-spring-boot-starter。

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.11</version></dependency>

1.2 配置 yml

在 application.yml 文件中,前面已经配置了数据源的驱动(driver-class-name)、连接地址(url)、用户名(username)、密码(password),现在需要追追加连接池类型配置、druid 连接池参数配置、druid 监控页面配置。

最后 spring.datasource 的配置如下:

spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/hero_springboot_demo?useUnicode=true&characterEncoding=utf8&useSSL=true username: root password: Mysql.123 # 指定数据源为 DruidDataSource,默认值为 HikariDataSource type: com.alibaba.druid.pool.DruidDataSource druid: initial-size: 5 min-idle: 5 max-active: 5 max-wait: 30000 min-evictable-idle-time-millis: 30000 time-between-eviction-runs-millis: 30000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 5 filters: stat,wall use-global-data-source-stat: true stat-view-servlet: enabled: true url-pattern: /druid/* login-username: admin login-password: 111111 web-stat-filter: enabled: true url-pattern: /* exclusions: /druid/*, *.js, *.jpeg, *.jpg, *.png, *.gif, *.css filter: stat: merge-sql: true slow-sql-millis: 3000 log-slow-sql: true

Druid 连接池配置的部分参数解析:

initial-size:连接池初始化时创建的连接数量。min-idle:连接的最小空闲数量。max-active:最大活跃的连接数量。max-wait:等待超时时间。当遇到 DB 操作时,如果连接池中活跃的连接达到 max-active 就会等待,等待超过 max-wait 就会报错。min-evictable-idle-time-millis:连接允许的最大空闲时长(回收空闲连接的最小时长)time-between-eviction-runs-millis:多久检测一次连接池里连接的空闲时长validation-query:检测连接是否有效的 SQLfilters:配置 druid 的扩展插件。stat – 用于监控统计的filter;wall – 用于预防 SQL 注入的filter。其他还有 log4j、config。filter:配置过滤器的参数:filter.stat.merge-sql:是否开启 mergeSQL的功能;filter.stat.slow-sql-millis:超过多久才是慢SQLstat-view-servlet 和 web-stat-filter 用于配置监控页面的 servlet 和 filter

想在浏览器中访问监控统计页面,stat-view-servlet.enabled 和 web-stat-filter.enable 都需要配置为 true。

配置完成后,在浏览器中访问:(前面已配置 stat-view-servlet.url-pattern 为 /druid/)

http://localhost:9099/druid/

输入 stat-view-servlet 配置的 login-username 和 login-password,进入 druid 的监控统计页面

2 配置文件密码加密

在上面的数据源的配置中,数据库密码(spring.datasource.password)明文存储。在现实企业级开发中,通常采用配置中心的方式来解决。配置文件存储在配置中心上,而配置中心有权限控制,敏感环境(UAT、生产环境等)的配置文件只有特定人员或特定环境能够访问。但是如果无论什么环境,都对密码加密,是非常有必要的操作。

由于已经集成了 druid,可以使用 druid 提供的 ConfigTools 来进行加密,该类采用非对称方式加密。咱使用单元测试类来生成公钥、私钥、加密后的密码。新建一个单元测试类 com.yygnb.demo.ConfigToolsTest:

package com.yygnb.demo;import org.junit.Test;import static com.alibaba.druid.filter.config.ConfigTools.encrypt;import static com.alibaba.druid.filter.config.ConfigTools.genKeyPair;public class ConfigToolsTest { @Test public void testPassword() throws Exception { String password = "Mysql.123"; String[] arr = genKeyPair(512); System.out.println("privateKey:" + arr[0]); System.out.println("publicKey:" + arr[1]); System.out.println("password:" + encrypt(arr[0], password)); }}

将该方法中的变量 password 值替换成你自己的密码。执行该单元测试,会在控制台中分别输出私钥 privateKey、公钥publicKey 和加密后的密码 password:

修改配置 spring.datasource.password ,值为上面的生成的加密后的密码添加公钥配置 publicKey,值为上面生成的公钥添加连接属性配置 spring.datasource.druid.connection-properties,值为:config.decrypt=true;config.decrypt.key=${publicKey}启用配置 spring.datasource.druid.filter.config.enabled,值为 true

如果重启成功,则加密成功。此时如果将密码或公钥修改为错误的、或者 pring.datasource.druid.filter.config.enabled 设置 false,服务都会启动失败。

声明:壹贝网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者wangteng@admin所有,原文出处。若您的权利被侵害,请联系 756005163@qq.com 删除。

本文链接:https://www.ebaa.cn/12221.html

(0)
上一篇 2024年1月5日
下一篇 2024年1月5日

相关推荐

  • 科隆应用技术大学研究生

    近年来,应用技术大学“双元制”高等教育模式,即企业和高校联合办学获得普及,其用实践和应用引领学科建设,开放协作,重视能力培养的办学定位被认为是德国近年来以及今后一个时期内高等教育最大的亮点和增长点。作为德国工程师的摇篮,应用技术大学为德国造就了一代又一代优秀的工程师,为德国经济增长和社会稳定做出了重要贡献,使“德国制造”成为闪耀世界的优质标签。 全国民办高校…

    2024年10月28日
  • 德国科隆大学(德国科隆大学世界排名)

    德国留学优势 1、公立大学免学费,留学预算低 公立大学大多数免学费,每学期收取150-250欧元的学杂费,大约是每学期2000元人民币。生活费方面,物价不算特别高,平均大概每个月900欧左右大约每月8000元人民币,一整年下来差不多在8w到10w之间。德国留学预算非常经济实惠,性价比高比英美等国家低很多。 2、德语普及率高,语言优势明显 许多世界知名的企业总…

    2023年10月3日
  • 高中辍学可以出国留学吗

    在高中阶段,部分学生因学习压力大、学业进度跟不上等原因选择辍学。可对于十几岁的青少年来说,未来的方向该如何把握?尤其是高一辍学后还有哪些出路,高中辍学后又该如何考大学,成了不少人关心的问题。今天就为大家梳理几条可行的思路。 首先,若仍有读书意愿,想圆大学梦,重新入学是不错的选择。虽然多数普通高中可能不接收辍学生,但可以选择职高、技校、中专注册中职学籍,之后同…

    2025年10月16日
  • 马耳他共和国简介

    我们经常在电视新闻中看到一个名称,那就是联合国观察员,里面就会偶尔提到马耳他骑士团这个名字,而在欧洲的地中海中间,也有一个名字叫做马耳他共和国的国家。很多人可能会有疑问,究竟这两者之间有什么样的关系呢?为什么都是用的“马耳他”呢?下面,我们就一起跟随历史的脚步,探寻两者之间的“某种关联”。 按照历史的时间来说的话,最早先有的就是马耳他骑士团,但事实上,马耳他…

    2023年12月17日
  • 广东理工职业学院鼎湖校区

    2024年是《广东省节水型高校建设三年行动计划(2022—2024年)》(以下简称《行动计划》)收官之年,《行动计划》各项既定目标均已圆满完成,全省累计建成121所节水型高校,建成率67.6%。 近日,省水利厅、省教育厅和省能源局 联合公布广东省节水型高校名单 新增30所节水型高校 地市学校广州广东财经大学(广州校区)、广州现代信息工程职业技术学院、广州南洋…

    2025年9月5日
  • 1998年中国大学排名完整版

    \r 说起杭州大学,许多年轻人或许已经陌生,但在1998年之前,它却是中国高等教育版图上一颗耀眼的明珠。曾经跻身全国前50强,学科实力不输“小985”,吸引了无数才俊求学。\r可惜的是,这所老牌名校在世纪之交被历史定格,随着高校合并浪潮消失于大众视野。如今回望,它的辉煌与遗憾,依然让无数校友和教育界人士唏嘘不已。 \r\r\r\r\r\r 杭州大学作为浙江省…

    2025年8月29日
  • 国际商务学校排名_国际商务学校排名考研

    国际商务专业简介 在“专业为王”的时代,专业的实力和特色日益成为学生选择学校的重要因素,与此同时,专业排名也成为了衡量专业实力的一个重要指标。专业排名对于高考志愿填报的指导意义如下: 了解专业实力:专业排名通常基于教学质量、研究水平、师资队伍、实验设备等因素进行评定。较高的排名往往意味着该专业在国内外具有一定的竞争力和影响力。 预测就业前景:排名靠前的专业通…

    2024年3月27日
  • 奈梅亨大学泰晤士排名

    【点新闻报道】政府今日(27日)公布,高才通计划经年度更新的合资格大学综合名单将于明年1月1日生效,名单涵盖199间合资格大学/院校。其中,新增的大学名单包括内地的中国科学院大学、智利天主教大学(Pontificia Universidad Católica de Chile)、沙特国王大学(King Saud University)、瑞士凯撒里兹大学(Ce…

    2025年9月3日
  • 广东外语外贸大学算名校吗

    文/圆梦志愿陈老师 广东外语外贸大学简称为“广外”,是一所位于广东广州的语言类公立大学,目前由广东省政府主管。那么,广东外语外贸大学是名校吗?本期,笔者就将为大家介绍这个问题。 广东外语外贸大学称得上名校吗? 判断是否为名校,需要对于学校进行了解,而本文将学校的情况分为了5个方面,具体如下: 1、合并建校不超过30年,身为广东省属重点大学 广东外语外贸大学起…

    2024年9月20日
  • 新加坡国立大学地址在哪里

    新加坡国立大学最早可追溯自1905年设立的英皇爱德华七世医学院及1927年设立的莱佛士学院(那时的新加坡是英皇的殖民地),1949年这两所学院合并成马来亚大学,后改名新加坡大学。1953年南洋大学在东南亚华人社群的倾力支持下成立,成为新加坡第二所大学。1980年新加坡大学同南洋大学正式合并成为新加坡国立大学。大学目前已拥有9大学院,共50多个学系,提供高水准…

    2024年11月12日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信