摘要:
前言 网上冲浪时刷到线程池的文章,想想看自己好像还没在实际场景中设置过线程名称,小小研究一下。 研究过程 默认命名 创建的线程都会有自己的名字,如果不设置,程序会给线程默认的名字,如Thread-0 Thread t = new Thread(() -> { System.out.println(T 阅读全文
摘要:
背景 在开发过程中,很容易将用户敏感信息,例如手机号码、身份证等,打印在日志平台。为了保护用户数据,又不影响日志的打印,需要将日志中的敏感信息进行脱敏。 效果 强烈建议 pull项目,执行一下项目中SensitiveUtils#main方法。 特性 支持多层级【Json】/【对象】字段脱敏 支持一次 阅读全文
摘要:
前言 https://www.cnblogs.com/handsometaoa/p/17025186.html 代码 工厂类: @Component public class XXEventHandlerFactory implements ApplicationContextAware { pri 阅读全文
摘要:
0. 前言 本文来自《阿里巴巴Java开发手册》,以下内容均根据自己偏好摘抄、总结、分享。 1. 编程规约 包名单数,类名复数。例如:com.tao.util.JsonUtils.java 不要使用一个类来维护所有的常量,要根据功能进行分类。例如: 缓存常量类:CacheConsts 配置常量类:C 阅读全文
摘要:
背景 某天上线同事问我: 今天晚上哪个模块需要上线? -阿答慢。 啥?安的命? -阿答慢。 好,安的命。 几天后... 领导问我: 你有没有区分任务的版本? -有,/ˈvɜːʃn/ 🤯 /ˈvɜːrʒn/(小声) 突然分不清到底读哪个(后来一查,前面英式读音,后面美式读音)。 所以决定学习下英语的 阅读全文
摘要:
Serializable接口 作用:标记一个类可以被序列化,如果没有实现该接口,则会抛出异常。 ObjectOutputStream中源码: 实验: serialVersionUID 作用:表示一个序列化版本,控制序列化与反序列化。 实现Serializable接口后,如果不显式设置serialVe 阅读全文
摘要:
使用线程池的问题 程序关闭时(eg. 上线),线程池中的任务会丢失(内存中)。 线程池优雅关闭 利用Spring中ContextClosedEvent:关闭程序触发的事件,在使用线程池的地方,可以将线程池注册到ThreadPoolShutdownListener中,然后在程序关闭时,ThreadPo 阅读全文
摘要:
1. pom文件<optional>标签 在Java开发中,大家肯定在pom文件中添加过依赖(现在没有,以后也肯定会有的),不知道大家对<optional>标签的了解有多少,或者是你没看下面内容,都不知道optional单词应该放在什么地方,没关系我会讲,听不懂还可以搜索别的优质博客。 <optio 阅读全文
摘要:
背景 openai 目前越来越流行,其他 ai 产业也随之而来,偶然翻到 openai接口文档,就想着可以调用接口实现智能聊天,接下来就写写我怎么接入 websocket 的过程,文笔不佳,谅解。 接入WebSocket 1. webSocket依赖 <dependency> <groupId>or 阅读全文
摘要:
1. Hash算法 哈希(Hash)也称为散列,把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是散列值、哈希值(hashCode)。(来自:百度百科) 在现实中,设计者常常将散列值作为索引,用于快速定位数据的位置,比如 HashMap : // cache => key:userId, 阅读全文