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日

相关推荐

  • 南美洲有哪些国家

    南美洲是南亚美利加洲的简称,位于西半球,南美洲大部分地区位于南半球,南美洲东临大西洋,西临太平洋,南部隔德雷克海峡与南极洲相望,北部通过中美地峡与北美洲相连。南美洲的面积约为1780万平方公里,约占世界陆地总面积的12%,是世界上面积第四大的大洲。南美洲的人口数量约为4.34亿人,排在亚洲、非洲、欧洲和北美洲之后,排名大洲人口数量第四位。 南美洲人口最多的五…

    2024年6月14日
  • 三位美联储官员齐刷刷“放鹰”:降息步伐还是要看数据!

    三位美联储官员同日表示,降息步伐将取决于即将公布的经济数据,并暗示此次降息路径可能与之前的降息周期有所不同。 波士顿联储主席柯林斯(Susan Collins)和纽约联储主席威廉姆斯(John Williams)表示,美联储在“今年晚些时候”首次降息可能是合适的,而亚特兰大联储总裁博斯蒂克(Raphael Bostic)表示,他目前预计美联储将在今年夏季某个…

    2024年3月11日
  • 加拿大名校排名_加拿大名校排名前十名

    前言:这是一篇来自公众号达恩留学有关于“加拿大排名前十的院校”的文章,旨在帮助想要去加拿大留学的同学了解各大院校。 加拿大留学热度一直都很高,费用相当于英美国家来说也会低一些,其卓越的教育质量和一流的学术,对于想要去加拿大留学的学生们来说是一个非常不错的选择,有许多优秀的大学可供国际学生们选择。 那么,去加拿大留学,究竟应该选择哪所院校呢?排名前十的加拿大院…

    2024年4月8日
  • 最垃圾的4所985大学_最垃圾的4所985大学排名

    国内985高校有39所,每一所都代表了国内高等教育的尖端水平,学校的综合实力都是毋庸置疑,可是因为很多外在因素,大众对这同等级的39所985大学也是褒贬不一。 俗话说“没有对比就没有伤害”,可是,作为同等级的39所985大学,怎么会没有比较,在39所985高校中,这4所高校是屡遭嫌弃,排在了985高校的末端,不过,这都是很多人对这些大学的一种误解和偏见,久而…

    2024年3月19日
  • 怎么看美国大学申请要求

    大家好,tpay 留学说。 1. 今天为大家做了美国大学的标化要求汇总,大家可以收藏。对于计划申请美本的中国留学生来说,了解各校的申请要求,特别是语言要求和标化成绩至关重要。 2. 首先是语言的要求,托福考试被美国院校广泛接受。 3. 其次是标化成绩的要求,美国高校对标化的要求可以分为四种: – TestOptonal 标化可选政策,学校不强制要…

    2024年11月19日
  • 关于新能源 华为最新发布!预测2025年智能光伏十大趋势

    1月6日,华为数字能源举办2025智能光伏十大趋势发布会。华为数字能源智能光伏产品线总裁周涛发布了智能光伏十大趋势和白皮书,为光储产业的高质量发展提供前瞻性支持。 周涛表示,2024年新能源政策持续利好,全球光伏市场新增装机522GW;储能市场快速增长,新增装机196GWh。2025年光储将保持良好增长趋势,预计全球光伏装机量将超过600GW,储能装机将超过…

    2025年1月7日
  • 考雅思多少钱

    在雅思考试中,如果正常参加的话,是不是大多数人都认为最起码能得个4.5-5分?然而…在现实世界中,居然有人在正常参加雅思考试的情况下,考了个3.5分! 3.5分到底是个什么概念?为什么会有人说考到这个分数比考9分还要困难? 下面,Vicky就带大家来看看,究竟要到什么程度,才会有可能只拿到3.5分。雅思只考3.5分到底是什么水平?让我们先来看看雅…

    2024年6月30日
  • 哈佛大学宣传片中文版

    无论任何时候,人才都是一个组织中的核心竞争力。企业如此,学校也是一样。每年,各大高校都会放出精心制作的招生宣传片,希望借此赢得激烈的“抢人大战”。 这些招生宣传片对企业招聘片、品牌形象片的拍摄同样有借鉴意义。清朗整理了几个优秀的高校招生宣传片,一起来看看这些令人赞叹的作品是如何打动人心的。 一、动画类 华东师范大学 《圆的故事》 清新可爱的画风是它的第一个亮…

    2025年3月26日
  • 英国女王大学世界排名_英国女王大学世界排名qs

    近期世界排名各大网站均在不断推出最新排名方式,很多同学开始关注加拿大女王大学的排名究竟如何。随着中国人民大学与加拿大女王大学金融硕士2024如火如荼的进行,大家对女王大学关注的热度也是可以遇见的,那么接下来我们就一起看下各大排名如何,最终花落谁家。 泰晤士高等教育世界大学排名(Times Higher Education World University R…

    2024年3月19日
  • 阿根廷留学(阿根廷留学一年费用)

    阿根廷这个处在地球最南端的国家,以其优秀的高等教育以及多元的文化成为了认识南美洲的最好窗口。加上学费和生活成本低廉,是一个非常适合留学国家。相对于英国、美国和澳大利亚等传统留学目的地,南美洲这片神秘的土地随着其对中国经济发展重要性地位的提升,或将成为下一个留学热门地。 全国文盲率仅1.9% 公立大学免费 阿根廷是一个教育资源非常丰富的国家,其教育系统在拉丁美…

    2023年10月15日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信