当前位置: 首页 > news >正文

线程池的使用 + MD5加密 + 枚举类

文章目录

  • 1、线程池的使用
  • 2、MD5算法的使用
  • 3、多用枚举类

整理下近期干活儿遇到的一些坑。

1、线程池的使用

不合理点1

jstack线程转储发现,有几万个线程,查看代码发现,线程池放在方法内部或者循环体中创建,尽管方法最后有shutdown关闭线程池,但一定并发调用下线程数量会激增

改进:

使用成员变量放线程池

不合理点2:

非单例Bean,或者一个普通的类中,线程池放成员变量了,但没有static修饰,正好其所在类被大量创建对象,一个对象一个线程池,大量线程池被创建

在这里插入图片描述

改进:

使用static修饰成员变量,即某个属性所有对象都相同,与之相反的是实例变量,即某个属性一个对象一份,如名字、身高

2、MD5算法的使用

不合理点:

调用一个三方接口,有个请求参数accesskey,其可能包含反斜线、等号🟰等特殊字符,直接传可能导致接口调用失败,甚至SQL执行出错,影响系统数据

改进:

考虑做一个MD5加密,输出一个定长字符串

补充:

关于MD5算法:Message-Digest Algorithm 5,可以将任意长度的数据映射为固定长度(通常为128位)的哈希值,该过程不可逆(无法从哈希值反推原始数据),多用于数据完整性校验

输入任意长度的数据 → 经过多轮循环处理 → 输出固定长度的128位哈希值(通常表示为32位十六进制字符串)

需要注意MD5有安全性问题:不同的输入可能生成相同的哈希值(目前已构造出大量碰撞案例),因此,不适用于:

  • 密码存储(应使用 bcrypt、Argon2 等算法)。
  • 数字签名或高安全场景。

仅推荐用于:非敏感数据的快速校验,如文件完整性检查

3、多用枚举类

代码中多用枚举类代替直接创建的字符串,常用的枚举形式一:

public enum StatusEnum {SUCCESS,RUNNING
}
//代替大量的"SUCCESS"字符串
StatusEnum.SUCCESS.name()

形式二:加一个display,而不是name()后转小写,更加有灵活性

@Getter
public enum ClusterTypeEnum {RABBITMQ("rabbitmq"),MQTT("mqtt");private final String displayName;ClusterTypeEnum(String displayName) {this.displayName = displayName;}}

形式三:用于传参字段上,直接将枚举类型和String在序列化和反序列化时自动转换,如此Dto类中可以直接用枚举类型的变量,而不再要求非得String,同样的,序列化时,也会把枚举转成String:

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;@Getter
@AllArgsConstructor
public enum OrderFieldEnum {CREATE_TIME("createTime", "create_time"),NAME("name","name");private final String value;  //值private final String field;  //对应数据库中的字段,方便后面写业务和Mapper层代码private static final Map<String, OrderFieldEnum> map = new HashMap<>();//@JsonCreator标记一个构造函数或静态工厂方法,告诉 Jackson 在反序列化 JSON 时应该调用该方法来创建对象实例。@JsonCreatorpublic static OrderFieldEnum check(String value) {//这里的判断map为空则遍历枚举类的值放进Map中//这个操作和上面的利用类加载时机初始化Map集合一个目的if (map.isEmpty()) {for (OrderFieldEnum orderFieldEnum : OrderFieldEnum.values()) {map.put(orderFieldEnum.getValue(), orderFieldEnum);}}//如果在Map中找不到对应的key和传入的字段相等,则认为非法传参,即不支持这个排序字段if (!map.containsKey(value)) {throw new MyExceptionHandler("不支持这个排序字段");  //自定义异常,在全局异常处理器处理}//否则返回整个枚举对象return map.get(value);}//@JsonValue标记一个方法,将该方法的返回值直接作为 JSON 的值,而不是将整个对象序列化为 JSON 对象//使用场景:当某个类本身不需要完整的 JSON 表示,只需要输出其中一个字段的值时@JsonValuepublic String getValue() {return value;}
}

详见:https://llg-notes.blog.csdn.net/article/details/130997300

相关文章:

线程池的使用 + MD5加密 + 枚举类

文章目录 1、线程池的使用2、MD5算法的使用3、多用枚举类 整理下近期干活儿遇到的一些坑。 1、线程池的使用 不合理点1&#xff1a;jstack线程转储发现&#xff0c;有几万个线程&#xff0c;查看代码发现&#xff0c;线程池放在方法内部或者循环体中创建&#xff0c;尽管方法…...

[qt5学习笔记]Application Example示例程序源码解析

开发环境问题 vs2022下直接打开ui、ts文件失败 解决办法如下图&#xff0c; 设置designer独立运行。估计是嵌入运行存在些许bug。 同理&#xff0c;ts编辑工具linguist也存在这个问题。 qrc rc的编辑嵌入编辑都正常&#xff0c;但分离式更稳定可靠。 qt creator编译失败 原…...

【在时光的棋局中修行——论股市投资的诗意哲学】

在时光的棋局中修行——论股市投资的诗意哲学 引子&#xff1a;数字之海与星辰之约 在经纬交织的K线图里&#xff0c;我常看见银河倾泻的轨迹。那些跳动的数字如同繁星坠落&#xff0c;在午夜时分编织着财富的密码。炒股之道&#xff0c;是理性与诗意的交响&#xff0c;是数据…...

IB网络错误检查工具ibqueryerrors

ibqueryerrors 是一个用于查询 InfiniBand 网络中错误统计信息的工具。它可以帮助网络管理员识别和诊断网络问题&#xff0c;如丢包、重传和其他通信错误。这个工具通常是 InfiniBand 管理软件包的一部分&#xff0c;例如 OpenSM&#xff08;Open Subnet Manager&#xff09;。…...

「vue3-element-admin」Vue3 + TypeScript 项目整合 Animate.css 动画效果实战指南

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …...

论文阅读 DOES END-TO-END AUTONOMOUS DRIVING REALLY NEED PERCEPTION TASKS?

端到端的强势来袭&#xff0c;好久了~~~ 简单翻译&#xff1a;端到端真的需要感知任务嘛&#xff1f; code https://github.com/PeidongLi/SSR. https://arxiv.org/pdf/2409.18341 1. 摘要 端到端自动驾驶&#xff08;E2EAD&#xff09;方法通常依赖于监督式感知任务来提取显…...

25年黑龙江省考报名流程详细教程

2025年黑龙江省考报名马上就要开始报名啦&#xff01; 有想要参加黑龙江省考报名的同学&#xff0c;可以提前了解一下考试报名流程&#xff0c;熟悉考试报名照要求&#xff01; 一、考试时间安排 报名时间&#xff1a;2月18日9:00至2月23日17:00 缴费时间&#xff1a;2月18日…...

基于SpringBoot的小区运动中心预约管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

部署postgresql_exporter监控pgsql

部署exporter配置监控job配置告警规则 一键部署脚本 #!/bin/bash# 定义变量 PG_HOST"xx.ap-southeast-1.rds.amazonaws.com" PG_PORT"5432" PG_PASSWORD"bagayalu321" PG_USER"monitor_user" EXPORTER_VERSION"0.16.0" #…...

Mac本地部署deepseek

Ollama 运行deepseek需要本地运行工具ollama&#xff0c;安装路径如下 ollama官方网站 (https://ollama.com/download) 下载Mac版ollama&#xff0c;点击移至application下面 DeepSeek R1 14b 通过ollama安装deepseek&#xff0c;对应的运行指令可通过 deepseek本地部署列表…...

huggingface+下载deepseek8b lamda+本地部署 笔记

步骤倒过来 1.python hf_download.py --model unsloth/DeepSeek-R1-Distill-Llama-8B-GGUF model后加模型名&#xff08;HF-Mirror中查&#xff09; 【huggingface模型下载不下来&#xff1f;这里教你万能解决办法~huggingface小白使用指南。】 https://www.bilibili.com/video…...

中上211硕对嵌入式AI感兴趣,如何有效规划学习路径?

今天给大家分享的是一位粉丝的提问&#xff0c;中上211硕对嵌入式AI感兴趣&#xff0c;如何有效规划学习路径&#xff1f; 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问&#xff1a; 中上211&#xff0c;…...

Jedis 客户端 用于java连接redis服务

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId...

车载诊断数据库 --- 通用性诊断数据库ODX

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...

docker 基础命令使用(ubuntu)

docker 状态查询 docker ps docker ps -adocker --version docker info docker --help docker run --help docker ps --help ...docker 操作镜像命令 docker imagesdocker rmi 镜像id/镜像名docker 操作容器命令 docker ps docker ps -adocker run 命令 # 端口映射 -p 参数…...

IDEA集成DeepSeek

引言 随着数据量的爆炸式增长&#xff0c;传统搜索技术已无法满足用户对精准、高效搜索的需求。 DeepSeek作为新一代智能搜索技术&#xff0c;凭借其强大的语义理解与深度学习能力&#xff0c;正在改变搜索领域的游戏规则。 对于 Java 开发者而言&#xff0c;将 DeepSeek 集成…...

Unity 接入Luabn记录图解

Luban 文档及链接项目目录UnityEditor 导表工具 文档及链接 官方文档 最新版本 项目目录 接入的方法有很多&#xff0c;我这里随便找了一种 https://gitee.com/focus-creative-games/luban_examples.git如上图&#xff0c;git拉去后&#xff0c;只保留圈起来的2个文件夹。…...

【MySQL】我在广州学Mysql 系列——Mysql 日志管理详解

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天又是新的一周了&#xff0c;又该摆好心态迎接美好的明天了&#xff01;&#xff01;&#xff01;&#x1f606; 本文主要对Mysql数据库中的日志种类以及基本命令进行讨论&#xff01;&#xff01; 回顾&#xff1a;&#x1f4…...

【线段树 二分查找】P3939 数颜色|普及+

本文涉及知识点 C线段树 C二分查找 P3939 数颜色 题目背景 大样例可在页面底部「附件」中下载。 题目描述 小 C 的兔子不是雪白的&#xff0c;而是五彩缤纷的。每只兔子都有一种颜色&#xff0c;不同的兔子可能有 相同的颜色。小 C 把她标号从 1 到 n n n 的 n n n 只兔…...

2011年下半年软件设计师考试上午题真题的详细知识点分类整理(附真题及答案解析)

以下是针对2011年下半年软件设计师考试上午题真题的详细知识点分类整理&#xff0c;涵盖所有题目涉及的核心知识点&#xff0c;供考生背诵记忆&#xff1a; 1. 数据结构与算法 树与图&#xff1a; 树的性质&#xff1a;树的节点数、深度、叶子节点数之间的关系。二叉树遍历&am…...

如何让Obsidian笔记库拥有AI大脑:obsidian-copilot完全指南

如何让Obsidian笔记库拥有AI大脑&#xff1a;obsidian-copilot完全指南 【免费下载链接】obsidian-copilot THE Copilot in Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-copilot 你是否曾在海量笔记中迷失方向&#xff1f;当需要从数百个文档中提取…...

D20: 会议效率革命:从准备到跟进的全流程

文章目录 D20: 会议效率革命:从准备到跟进的全流程 🎯 为什么这个话题重要? 现实痛点 真实案例:一场会议的"成本账单" 本章价值 一、会前准备:80% 的会议质量取决于会前 1.1 会议的"投入产出"评估 1.2 AI 辅助的会议准备 传统会议准备的痛点 AI 辅助…...

逆动力学模型在计算机操作学习中的应用与优化

1. 项目背景与核心价值在计算机操作技能学习领域&#xff0c;传统视频教程存在一个根本性痛点&#xff1a;学习者只能被动观看演示&#xff0c;无法获得实时操作反馈。这就像学开车时只看教练示范却永远摸不到方向盘——眼睛看懂了&#xff0c;手却跟不上。我们团队开发的这套基…...

从入门到精通:2026年大模型系统学习路线(小白程序员通用)

当下&#xff0c;大模型技术正加速从实验室走向产业落地&#xff0c;成为驱动AI变革的核心力量&#xff0c;无论是零基础小白、想转型的职场人&#xff0c;还是深耕技术的程序员&#xff0c;都渴望抓住这波技术浪潮。但大模型知识体系繁杂庞大&#xff0c;很多人要么被高深的理…...

Taotoken 用量看板与账单追溯功能如何帮助控制项目预算

Taotoken 用量看板与账单追溯功能如何帮助控制项目预算 1. 用量看板的核心观测维度 Taotoken 用量看板为项目管理者提供了多维度的实时观测能力。在控制台首页的用量概览区域&#xff0c;可以直观查看当前计费周期内的总 Token 消耗量、各模型调用占比以及费用分布。这些数据…...

TranslucentTB开机启动问题全面解决指南:如何确保任务栏透明工具自动运行?

TranslucentTB开机启动问题全面解决指南&#xff1a;如何确保任务栏透明工具自动运行&#xff1f; 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/Translucen…...

从‘俄罗斯方块’到‘涟漪移动’:VLSI布局算法里那些有趣的工程比喻与实战选择

从‘俄罗斯方块’到‘涟漪移动’&#xff1a;VLSI布局算法里那些有趣的工程比喻与实战选择 芯片设计就像一场精密的城市交通规划——当数百万个逻辑单元需要被合理地安置在硅基板上时&#xff0c;工程师们创造了一系列充满想象力的算法。这些算法不仅有着"俄罗斯方块"…...

Cursor Free VIP:告别试用限制,5步实现AI编程助手永久免费使用

Cursor Free VIP&#xff1a;告别试用限制&#xff0c;5步实现AI编程助手永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: You…...

【R 4.5量化实战权威指南】:零基础搭建AI驱动的多因子回测框架,限时开放3套工业级策略源码

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;R 4.5量化投资AI策略回测教程概览 R 4.5 版本引入了更高效的内存管理、原生管道操作符&#xff08; |>&#xff09;支持&#xff0c;以及对 tidyverse 生态的深度优化&#xff0c;为量化策略回测提供…...

论文AI率从78%降到1.4%:嘎嘎降AI维普知网双查实测达标率!

论文AI率从78%降到1.4%&#xff1a;嘎嘎降AI维普知网双查实测达标率&#xff01; 「双查」是 2026 年硕士论文降 AI 率最常见的需求场景。学校送审一般同时查知网和维普——单平台合格不代表两个都合格。学生最怕的是知网 AIGC 6% 看着没问题&#xff0c;维普 AIGC 一查 32% 触…...