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日

相关推荐

  • 美国双城大学怎么样

    在美国留学趋势前景大好,申请人数逐年攀高的情况下,越来越多中国留学生选择去明尼苏达大学双城分校留学,那么作为世界排名领先的明尼苏达大学双城分校到底有多厉害?下面和美藤国际教育一起来了解下吧! 明尼苏达大学双城分校是明尼苏达大学系统的旗舰学府,自1851年建校至今,学校已拥有众多声名显赫的校友,包括25位诺贝尔奖得主 [1] ,1位前美国首席大法官,2位前美国…

    2024年7月7日
  • 巴塞罗那大学世界排名_西班牙巴塞罗那大学世界排名

    近日,全球高等教育分析机构QS(Quacquarelli Symonds)重磅发布2023年可持续发展大学排名!这是QS发布的首个世界大学可持续发展排名,该排名旨在评估大学如何采取行动解决世界上最紧迫的环境和社会问题提供全新框架。 什么是QS可持续发展大学排名? 本次排名提供了一种衡量标准,展示大学对地球产生的积极性影响和对社会和经济的影响。为了展示那些致力…

    2024年3月17日
  • 荷兰法学最好的三所大学

    近期有同学和我们咨询欧洲法学院的情况,以及欧洲法学院是否有奖学金可以申请,答案是肯定有的。欧洲法学院的选择国家可以有荷兰,瑞士,比利时,德国,法国等这些国家的选择,并且这些国家院校都为非欧盟的同学提供一些专项的奖学金,小编为大家整理了一些院校的奖学金项目,供大家参考。 荷兰莱顿大学 荷兰莱顿大学法学院为非欧盟的学生提供专项的奖学金,其中包含LLM。 奖学金金…

    2025年9月2日
  • 中国教育世界排名_中国教育世界排名第几?

    2024-02-01 08:28 来源:新华社 链接已复制 字体:小大 黄土高原上,宁夏固原市原州区彭堡镇曹洼小学传来阵阵歌声。与羊群相伴长大的学生海洋,正通过教室里可触控的“智慧黑板”学习厦门六中合唱团演唱的《夜空中最亮的星》。一根网线,将他与城市孩子连在一起,同唱一首歌。 中国的数字教育成长有多快?1月31日,在上海举行的2024世界数字教育大会传来消息…

    2024年4月17日
  • 英国留学研究生费用一览表

    大家好呀!~最近很多宝子问我:“一年制硕士时间这么短,到底值不值得?”我的答案是:选对赛道,一年时间足够让你脱胎换骨! 今天就用这篇干货,帮25fall的姐妹们盘透“一年制硕士”的那些选择 热门国家&地区PK:谁是你的天菜? 英国(老牌经典) 优势:学校多、排名香(QS前100占20+所),课程紧凑纯干货,毕业后还能申请2年PSW签证! 适合人群:追…

    2025年10月20日
  • 马来西亚官方语言(马来西亚官方语言是什么语)

    澎湃新闻记者 许振华 近日,马来西亚提出倡议,希望在东南亚国家联盟(ASEAN)内赋予马来语一定的官方地位,这在东盟内部引起讨论。东南亚是一个族群、语言、宗教高度多元的地区。在这一背景下,东盟10个成员国的官方语言各不相同,东盟作为一个整体,则以英语作为唯一的工作语言。 新加坡亚洲新闻台(CNA)4月7日刊登评论指出,这已经不是马来西亚第一次提议在东盟赋予马…

    2023年11月23日
  • 哈佛大学托福成绩要求

    哈佛大学是美国历史最悠久的高等学府,同时也在世界大学排名中常年荣居第一。哈佛大学医学、法学、商学等专业非常出色,具有非常广泛的影响力,很多学子的梦中情校也是哈佛大学,那么申请哈佛大学留学雅思要求多少分?小润将在下文中为大家详细讲解。 申请哈佛大学本科雅思成绩要求最低是7.0分; 申请哈佛大学硕士学位雅思成绩要求8.0分; 雅思成绩7.0分属于良好水平,8.0…

    2025年10月13日
  • 哈罗公学一座真正的英国学校纪录片

    最近几年,在国内中产阶级家庭中英式教育越来越火爆。不管是英国伊顿、西敏公学,还是北京的德威、哈罗,惠灵顿、威雅公学,申请人数都在逐年上涨,竞争激烈。 但是,对于一哄而上的中国家长们来说,真的了解英式教育吗?为什么大家都在争抢名额?到底这种教育好在哪里,有什么样的魅力?真的适合我家孩子吗?这些也是父母们,肉眼可见的焦虑。 这些问题的详细答案,都在这些评分9.0…

    2025年6月24日
  • 重庆西南大学专业介绍

    2023年西南大学在重庆普通类高考录取中,物理类投放了53个招生专业及专业类,历史类投放了22个招生专业及专业类。大家都清楚,西南大学有北碚本部还有荣昌校区等两大校区招生,其中荣昌校区录取分数相对较低。 比如在物理类的53个招生专业及专业类中,北碚校区不同专业及专业类最低录取分数介于545-603分之间,而荣昌校区最低分则介于530-558分之间;历史类不同…

    2024年1月10日
  • 格里菲斯学院位置

    在众多学子追逐海外高等教育梦想的道路上,格里菲斯大学宛如一颗璀璨的明珠。这所大学凭借自身独特魅力,吸引着无数学子的目光。考上格里菲斯大学究竟意味着什么呢?是开启一段精彩绝伦的学术之旅,还是收获更多意想不到的成长与蜕变?接下来,就让我们一同深入探寻,揭开这所大学的神秘面纱,看看它究竟能为学生带来怎样的非凡体验。 卓越的学术实力 格里菲斯大学拥有雄厚的学术实力,…

    2025年8月19日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信