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日

相关推荐

  • 布里斯托和杜伦大学哪个好

    近日,泰晤士高等教育(THE)与人力资源咨询公司 Emerging 联合发布 2026 年度全球大学就业能力排名(GEURS)。 图源:泰晤士高等教育 本次排名整合了 32 个国家和地区、12350 家雇主的 119967 份评价,最终筛选出全球 250 所就业力表现领先的院校。 该排名聚焦全球院校的学生就业能力培养成效,也是当前全球雇主认可度较高、使用率较…

    2025年12月27日
  • 赛力斯“五折”推员工持股计划 考核与营收和销量挂钩

    因交付量持续上涨,赛力斯(601127)股价自去年8月以来大涨。2月29日,公司股价再度涨停,收于91.93元/股,市值突破1387亿元。 2月29日晚,赛力斯公布了2024年员工持股计划草案。此次员工持股计划受让公司回购股份的价格为44.37元/股,约相当于草案公告前1个交易日赛力斯股票交易均价88.73元的50%。 激励股份源自回购 赛力斯此次员工持股计…

    2024年3月15日
  • 匹兹堡大学托福要求

    目前,美国匹兹堡大学申请要求在下面已经列出: 本科: 雅思:6.5分 托福:80分+ SAT:1730-2040 GPA:3.5 硕士: 雅思:7分 托福:80分+ GPA:3.5 美国匹兹堡大学录取率 美藤国际教育介绍道,该校录取率为55.3% 美国匹兹堡大学强势专业 匹兹堡大学有16个学院,其中: 教育学院排名——全美第24; 工程学院排名——全美第47…

    2025年11月24日
  • 2023泰晤士前100的大学

    10月12日,《泰晤士高等教育》(Times Higher Education,简称THE)发布了2023年世界大学排名!

    2025年1月17日
  • 宾汉姆顿大学留学经历

    宾汉姆顿大学 托马斯·沃森学院 托马斯·沃森工程与应用科学学院(Thomas J. Watson School of Engineering and Applied Science)是本校成长最快的学院。新成立了创新科技研究中心(ITC),包含了最热门的生物科技所。学院总共约有2,500名学生,其中包括1,700名本科生,500名左右研究生和200多位博士生…

    2025年7月27日
  • 出国景观设计大学

    9月1日上午,四川农业大学风景园林学院与美国路易斯安那州立大学景观系举行线上联合会议,共同落实推进国际合作办学。会上双方达成了一些共识,包括:其一,开展线上联合课程。秋季学期景观系教师Brendan Harmon根据风景园林学院研究生班风景园林规划设计课程开设1-2次线上课程,双方师生在线参与学术讨论。其二,大熊猫国家公园专著联合撰写工作。梳理双方已有研究基…

    2026年1月16日
  • 8月9名银行人被终身禁业 贷款违规仍是主因 三季度已有近30人被“红牌罚下”

    昨日,金融教育宣传月正式启动,针对金融机构和从业者的教育也被纳入其中,而从近期曝光的诸多行业罚单来看,加强对金融从业者的教育很有必要。 今日,依据国家金融监管总局官网信息,财联社记者梳理发现,8月份银行业累计有9名银行人员被监管终身禁业,涉及国有大行员工3人,股份行、区域性城商行、农商行及村镇银行各有2人。而从监管公布的原因来看,8月份被监管红牌罚下的银行从…

    2024年9月8日
  • 泉州一本大学

    厦门作为美丽的海边城市,不仅风景宜人,还拥有多所实力强劲的一本大学,涵盖综合类、理工类、医学类等方向。以下是厦门一本大学及其特色专业的详细介绍: 1. 厦门大学(Xiamen University) 简介:厦门大学是中国教育部直属的综合性重点大学,国家“双一流”“211工程”“985工程”建设高校,由爱国华侨领袖陈嘉庚先生于1921年创办,被誉为“中国最美大…

    2025年8月23日
  • 明德立人留学(明德立人留学怎么样)

    不知不觉间,2021年也已过去将近一半的时间了,对于想要进行2022年留学申请的同学们来说,现在已经是要着手于选校工作的时刻了。 如果到现在还没有确定方向的话,最好的办法就是尽快咨询专业人士,根据自身的学业背景,找到匹配的专业方向。 在前不久明德立人发布的2021年研究生申请战绩中,曾提到今年申请季几大热门专业分别为:商业分析、计算机科学、数据科学、金融工程…

    2023年10月17日
  • 四场诉讼涉案28亿!部分债权难执行 这家银行难题该如何破解?

    昨日晚间,郑州银行连发三条诉讼公告,涉及四场金融借款合同纠纷,涉案金额合计达27.94亿元。 财联社记者梳理发现,在此番披露的四场诉讼中,与郑州银行产生纠纷的企业或多或少均涉及到房地产领域,如鑫盈置业、康桥房地产、美景新瑞房地产、翰园置业等等。 业内分析人士告诉财联社记者,地产行业下行对整个银行板块都造成一定冲击,尤其是涉房贷款规模较大、比重较高的银行,若难…

    2024年1月25日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信