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日

相关推荐

  • 乔治城大学llm面试

    法律学生出国留学首选的三个国家:美国、英国、中国香港,今天我们就主要来讲讲这三个国家LLM申请优劣势。 美国法律硕士的开设情况&专业分支 2022年全美US排名前50的大学里,有38所院校开设了法学院,法学院开设的常见专业分为几类:LLM、JD、MSL、JSD,简单介绍一下这几类专业: LL.M.:Master of Law,是一年制的法学高级进阶课…

    2025年9月4日
  • 双非申请南洋理工大学研究生条件

    南洋理工大学(NTU)作为新加坡首屈一指的顶尖大学,在 2025 年秋季留学申请季截止日前,新增了六个热门硕士项目,涵盖建模与仿真、化学工程、生物医学工程、航空学、工程管理以及纳米技术等热门领域。 新增硕士专业及申请要求 建模与模拟硕士(MSc in Modelling and Simulation) 专业要求:数学、物理、工程、计算机科学、金融或相关领域等…

    2025年8月14日
  • 牛津大学校长_牛津大学校长是谁

    “书山有路勤为径、学海无涯苦作舟”,我国唐代著名诗人、哲学家韩愈的这幅治学联告诫我们,在治学的道路上没有捷径可走,只有勤劳吃苦才能成就学业。 但如果有钱呢?我可以负责任地告诉您,钱买不来智商! 造假全球化:刻章办证卖文凭 从读硕、读博、博士后到在中科院工作,这十多年来即见证了我国科学和教育事业的飞速发展,也看到了试图走捷径不劳而获者龌龊的一面。 查获的假证 …

    2024年3月17日
  • 上完大一如何申请国外留学

    刚上大一,如果未来有出国留学的打算,大学四年的准备过程应该系统地规划和实施。以下是按照年级划分的准备建议: 大一: 明确留学目标:首先,确定自己希望留学的国家、学校、专业以及留学期限。这有助于你更有针对性地制定后续的规划和准备。保持优秀的GPA:大一是建立良好学术基础的关键时期。确保你的GPA(平均成绩点数)保持在较高水平,这对后续的留学申请至关重要。准备语…

    2024年7月8日
  • 西交利物浦大学研究生有啥专业

    前言:这是公众号留美申请专家关于西交利物浦大学硕士有哪些热门专业,双非也可任选名校热门专业的一篇文章 西交利物浦大学,简称“西浦”,位于江苏省苏州市,是由西安交通大学(985)和英国利物浦大学(英国红砖6校之一)合作创立的、教育部批准设立的中外合作办学全日制普通本科高等院校,中外合作大学联盟成员、江苏省省级硕士立项建设单位。 西浦目前开设48个本科、44个硕…

    2024年1月8日
  • 荷兰莱顿大学世界大学排名

    来源:环球时报 英国《经济学人》网站2月19日文章,深度求索背后是一所耀眼的中国大学 杭州最近发生一场技术革命。人工智能公司深度求索(DeepSeek)就是在杭州发展起来的,其亮相震惊外国竞争对手。该公司由梁文锋创立,他是浙江大学(浙大)的毕业生,这所大学在中国以外仍鲜为人知。在以加州硅谷为(科技发展)蓝本的杭州,浙大迅速成为由研究人员和创业者组成的充满活力…

    2025年9月5日
  • 新加坡psb学院(新加坡psb学院qs排名)

    新加坡PSB学院被新加坡教育部所属的私立教育理事会(CPE)授予了教育信托认证计划四年期 EduTrust-认证。被其他多所行业机构评为新加坡前三甲私立高校。 创办时间:1964年师资力量:拥有600多位全职和聘任制老师学生数量:11,000多名本国和国际学生 新加坡PSB学院是新加坡最大的学院之一,在提供高等教育方面已有超过五十年的经验。 PSB学院与澳大…

    2023年11月21日
  • 浙江的大学排名_浙江的大学排名一览表及分数线

    浙江省,作为我国东部沿海的经济强省,不仅在商业、科技和文化领域有着卓越的成就,而且在教育领域也表现突出。 每年高考结束后,浙江省的大学总是成为众多考生报考的热门选择。 这背后不仅仅是因为浙江省具有优越的地理位置和发达的经济条件,更因为这里聚集了一批在全国乃至世界范围内都享有盛誉的高等教育机构。 浙江省拥有多所高水平的大学,其中不乏在国内外享有盛誉的高等学府。…

    2024年3月5日
  • 高三复读学校招生广

    选择重来,不是失意人的沉寂,而是王者归来的蛰伏;选择复读,不是懦弱者的隐匿,而是壮志未酬的孤勇!花会沿途盛开,你选择的路也是,潍坊瀚声学校助你拼一个无怨无悔! 2024年招收高三复读生100人开设所有选科组合及日语课程(招收文化课类、体育类、艺术类的复读生) 理念先进,文化包容 潍坊瀚声学校是山东271教育集团倾力打造的一所高起点、高标准、高品质的民办学校,…

    2024年11月28日
  • 皇家霍洛威大学学费_皇家霍洛威大学学费多少人民币

    QS全球排名第291位 雅思成绩:6~6.5 学费每年1.22~1.99W 本地/国际学生比例为 71%~29% 王牌专业: Victorian Literature, Art and Culture The Internet of Things with a Year in Industry Economics The Internet of Things…

    2024年4月7日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信