线程池拒绝策略

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 线程池拒绝策略

druid 数据库加密方法

利用配置完成加密

  1. 利用druid的jar包生成对应的publicKey,privateKey,password
~ java -cp D:\environment\apache-maven-3.6.3\repository\com\alibaba\druid\1.2.4\druid-1.2.4.jar com.alibaba.druid.filter.config.ConfigTools 123456
  1. 执行命令后生成对应的值:
privateKey:MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAiNTHXZbTodDI86PXYVH8vh4JnYoYbNTUBWjRFZrzKgnuQtma/2XNNL16a4K0dtJrRmur/HUDZGtJsBJYJaIo3wIDAQABAkAMwbmskgk9BtgVTusfmaM0nlxLIbrROq5hqroDh6SwAIYdO2sHyp/lSrHzRPhVqinrcyLSO3zmH1wiA
gZoYfKxAiEAvdqlMAr3JqJ5zlVylnJ6JE1ihQRuLQ13z1MKGeiCVlUCIQC4gPHJwyyMQzgOYbFxc8YnD/OwVrRVZG57OlVnHVmuYwIhAIXnQ2DKKx0NtVlo/OPNpAYcqmLlCAwwlpMcn2A8lEjtAiEArsefxNT6J2kp+h27nVDiPnDTFZIdRONd8ahB7OuV4CcCIQCjm3CKZhuxeCUJOq8+HQQ8XxWf/0UeMSIBD
b9rAA0h8Q==publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIjUx12W06HQyPOj12FR/L4eCZ2KGGzU1AVo0RWa8yoJ7kLZmv9lzTS9emuCtHbSa0Zrq/x1A2RrSbASWCWiKN8CAwEAAQ==password:B0HU/gB6puPrjMg4EHs9Fw8GdW7rr4i9XCsbmTuQYtxw3SslSkCc1EjTt5fP/EYuuwltf3ls4oFbCbh8gO9+Bg==
  1. 将生成的publicKey, password配置到配置文件中
spring:  datasource:    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:      username: test
      password: pU6kFhGmzI1DVeFtvIVBberT86KsIUE/iPQeN7wsqHyYNAnvQ/2GZBbOCvdm7SJpaC3klmqtCdvfDtk1FLocQA==
      url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
      filter:        config:          enabled: true      connection-properties: config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMUKJrfaFd7QgLYKdU6/auBBAHn7DgRZKRdMo6yRqcaAWLjudPH4OP58A3EgMc/GFlvHjVK3pF/Qz/FTVKBtPksCAwEAAQ==
      filters: stat,wall
  1. 进行程序连接

自定义key完成加密

自定义加密需要加一个重写密码解密的类

  1. 新建MyDruidPwd.java
packagecom.education.config;
importcom.alibaba.druid.util.DruidPasswordCallback;
importlombok.extern.slf4j.Slf4j;
importjava.util.Properties;
/*** @author code* @version 1.0* @date 2021/4/15 13:41*/@Slf4jpublicclassMyDruidPwdextendsDruidPasswordCallback {
publicstaticfinalStringkey="-education";
@OverridepublicvoidsetProperties(Propertiesproperties) {
super.setProperties(properties);
char[] chars=null;
try {
Stringciphertext=properties.getProperty("pwd");
//安装之前密码加密的方式进行解密Stringpwd=encryptPwd(ciphertext);
chars=pwd.toCharArray();
        } catch (Exceptione) {
e.printStackTrace();
log.info("解密失败,{}", e.getMessage());
        }
super.setPassword(chars);
    }
/*** 自定义解密** @param pwd* @return*/privateStringencryptPwd(Stringpwd) {
//自定义加密,可用md5加密//TODOreturnpwd.split(key)[0];
    }
/*** 自定义加密* @param ciphertext* @return*/privatestaticStringdecryptPwd(Stringciphertext) {
//自定义解密,按照加密方式进行解密//TODOreturnciphertext+key;
    }
publicstaticvoidmain(String[] args) {
System.out.println(decryptPwd("pU6kFhGmzI1DVeFtvIVBberT86KsIUE/iPQeN7wsqHyYNAnvQ/2GZBbOCvdm7SJpaC3klmqtCdvfDtk1FLocQA=="));
    }
}
  1. yml配置
spring:  datasource:    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:      username: test
      password:      url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
      connection-properties: pwd=test123456
      filters: stat,wall
      password-callback-class-name: com.education.config.MyDruidPwd
  1. 解密过程
    在自定义类的重写方法中按照自定义加密规则进行解密再赋值给druid.


相关文章
|
5天前
|
数据采集 存储 Java
高德地图爬虫实践:Java多线程并发处理策略
高德地图爬虫实践:Java多线程并发处理策略
|
1月前
|
存储 前端开发 Java
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
45 1
|
1月前
|
API 数据库 Android开发
构建高效Android应用:探究Kotlin多线程优化策略
【2月更文挑战第14天】随着移动设备性能的日益强大,用户对应用程序的响应速度和流畅性要求越来越高。在Android开发中,合理利用多线程技术是提升应用性能的关键手段之一。Kotlin作为一种现代的编程语言,其协程特性为开发者提供了更为简洁高效的多线程处理方式。本文将深入探讨使用Kotlin进行Android多线程编程的最佳实践,包括协程的基本概念、优势以及在实际项目中的应用场景和性能优化技巧,旨在帮助开发者构建更加高效稳定的Android应用。
|
3月前
|
Java
线程池的饱和策略有哪些?
线程池的饱和策略有哪些?
183 0
|
1月前
|
存储 算法 Java
【C/C++ 线程池设计思路】 深入探索线程池设计:任务历史记录的高效管理策略
【C/C++ 线程池设计思路】 深入探索线程池设计:任务历史记录的高效管理策略
87 0
|
16天前
|
Java 程序员 编译器
Java中的线程同步与锁优化策略
【4月更文挑战第14天】在多线程编程中,线程同步是确保数据一致性和程序正确性的关键。Java提供了多种机制来实现线程同步,其中最常用的是synchronized关键字和Lock接口。本文将深入探讨Java中的线程同步问题,并分析如何通过锁优化策略提高程序性能。我们将首先介绍线程同步的基本概念,然后详细讨论synchronized和Lock的使用及优缺点,最后探讨一些锁优化技巧,如锁粗化、锁消除和读写锁等。
|
1月前
|
Java 程序员 API
【深入探究 Qt 线程】一文详细解析Qt线程的内部原理与实现策略
【深入探究 Qt 线程】一文详细解析Qt线程的内部原理与实现策略
79 0
|
1月前
|
Java Android开发 开发者
构建高效Android应用:探究Kotlin多线程优化策略
【2月更文挑战第17天】 随着移动设备性能的不断提升,用户对应用的响应速度和稳定性要求越来越高。在Android开发中,Kotlin语言以其简洁、安全的特点受到开发者青睐。然而,面对复杂的多线程任务,如何有效利用Kotlin进行优化,以提升应用性能,是本文探讨的重点。通过分析Kotlin并发工具的使用场景与限制,结合实例演示其在Android开发中的实践,旨在为开发者提供实用的多线程处理指南。
|
2月前
|
安全 算法 Java
Java中的多线程编程及其优化策略
【2月更文挑战第9天】在当今高度并发的技术环境下,多线程编程成为了Java开发中不可忽视的一部分。本文将介绍Java中多线程编程的基本概念和核心特性,并深入探讨如何优化多线程程序以提高性能和稳定性。
|
2月前
|
监控 Java 开发者
Java并发编程中的线程池优化策略
【2月更文挑战第6天】在Java并发编程中,合理地使用线程池是提高程序性能和效率的关键。本文将探讨线程池的优化策略,包括核心线程数设置、队列类型选择、拒绝策略等方面,帮助开发者更好地利用线程池来处理并发任务。
138 8