- 博客(600)
- 资源 (31)
- 收藏
- 关注
原创 简单实现实体类字段脱敏
脱敏就是现实某些敏感的字段完全暴露数据,但又不能完全消去,保留一部分信息即可判断,常见如姓名、手机、邮箱、用户名、密码等字段。
2024-12-29 16:56:00
465
原创 回退 Fall back 策略的实现
最近需要在页面上展现一个通过 HTTP 请求微信服务接口而生成的带参二维码,用户扫描后可以体验到关注公众号、显示一些动态消息、注册会员等功能。然而在测试的中发现通过微信接口生成二维码这个过程偶尔会发生超时或者其他异常,这时候需要把图片替换为一张静态的二维码图片;如果这种情况在一段期间内反复发生(譬如微信接口服务突然挂了),将会影响用户使用我们系统的体验,因此需要有个 fall back 的策略。
2024-12-17 15:33:04
579
原创 学用 JDK Exchanger
Exchanger()是自 JDK1.5 起开始提供的工具套件,一般用于两个工作线程之间交换数据。在本文中我将采取由浅入深的方式来介绍分析这个工具类。首先我们来看看官方的文档中的叙述:从官方的 Javadoc 可以知道,当一个线程到达 exchange 调用点时,如果它的伙伴线程此前已经调用了此方法,那么它的伙伴会被调度唤醒并与之进行对象交换,然后各自返回。如果它的伙伴还没到达交换点,那么当前线程将会被挂起,直至伙伴线程到达——完成交换正常返回;或者当前线程被中断——抛出中断异常;
2024-12-17 15:19:37
1020
原创 老旧前端项目如何升级工程化的项目
因为历史的原因存在着大量的老旧前端项目,而在今天的开发环境中已经不再适应了,于是产生了升级到新的环境的需求。比如笔者当前的一个登录页面项目,就是以下面为技术栈的老旧项目。
2024-11-26 10:13:09
921
翻译 Goothereum:用 160 行 JavaScript 实现的加密货币
以太坊三年前发布——它通过引入一个强大的智能合约平台,迅速成为分散信任管理的事实上的标准。和它的精神先驱比特币一起,它也改变了金融世界的运作方式——通过引入一种全新的资金共享方式。但是尽管它很受欢迎,区块链的工作原理对
2024-07-19 22:37:27
158
翻译 用 160 行 JavaScript 代码写一个简化版的 React
React 是一个很棒的库——由于其简单性、性能以及声明式的工作方式,许多开发者立刻就爱上了它。不过在我看来,React 内部的工作原理,才是真正吸引我的地方。我发现实现 React 背后的想法不但既简单又优雅——我相信只要你理解了它的核心原理之后,你就能写出更快更安全的代码出来。在本文中,我带领你写出一个 React 的简化版,包含完整的功能,其中有组件 API 及虚拟 DOM(Virtual DOM/VDOM)的实现。
2024-07-16 09:53:52
155
原创 轻量级仿 SpringBoot 程序
但凡 Java 程序,想必就是 Spring 程序;但凡 Spring 程序,想必就是 SpringBoot 程序——且慢,当今尚有不是 SpringBoot 即 SpringMVC 的程序不?有——老旧的遗留系统不就是嘛~——不,其实只要稍加“调教”,SpringMVC 即可原地变为非常近似 SpringBoot 的形态,——不信?且待笔者慢慢道来
2024-06-27 12:37:39
922
原创 轻量级二维码生成器
提起 Java 的二维码生成器,相信大家都会想起 ZXing(Zebra Crossing),可是当笔者搜索 ZXing 的替代时候,却发现难以替代——原本想着有没有几个类简简单单地就可以实现二维码生成的,却几乎没有,倒是其他语言例如 JavaScript 就有原生生成二维码的,而且 Java 更多的,是基于 ZXing 的封装方案。当然了,单凭笔者自身的水平,写是不可能自己去写一个出来的——顶多只能学习、观摩别人开源的,进一步再加以封装而已。
2024-06-20 14:46:50
472
原创 Hono 框架使用经验谈
Hono🔥是一个小型、快速并开源的 Serverless Web 框架,用 TypeScript 写就。它适用于任何JavaScript运行时:Cloudflare Workers,Fastly Compute@Edge,Deno,Bun,Vercel,Netlify,Lagon,AWS Lambda,Lambda@Edge和Node.js,当然最多还是 面向 Edges Web框架。它为那么多不同的 Serverless 厂商提供了一个简单一致的 API 接口,而无需开发者去逐一兼容。
2024-05-28 17:27:13
2452
原创 免费 OSS 资源 Backblaze B2 使用最新指南
免费的对象存储资源日渐枯竭,Backblaze 是为数不多仍提供免费 OSS 的良心厂商。另外一个则是大名鼎鼎的 Cloudflare R2。虽然免费,但 Backblaze 也修改了政策:如果不验证信用卡的话是不能打开 Public 选项的,或者支付一美金。估计是薅羊毛的朋友太多了,官方不得不做某种限制。
2024-05-27 13:54:40
2051
原创 免费/低价服务资源的使用经验谈
互联网之所以吸引人的其中一个原因就是“免费”,不过免费却不好用的话,我想也不入多数人的法眼。如果可以给予少量的费用却有不错的服务资源,那么也是最好不过的事情。现在就让我们看看互联网有哪些免费或者低价的开发服务器资源。本文不定期更新。
2024-05-14 23:12:57
1169
转载 漫谈机器学习入门
身为想了解机器学习的开发者,若要了解原始码实现方式,背后数学原理,该如何进入这个领域?我们能以向量运算、矩阵运算、微积分等来思考,将数学与程式的心智模型结合
2024-04-16 10:24:21
84
原创 轻量级 S3 协议存储客户端
目前大家一般不会把二进制文件直接放在应用服务器上,而是存在“对象存储”的方案中,例如亚马逊的 AWS,阿里云的 OSS、Cloudflare R2 等。AWS 是最早的始作俑者,因此其 S3 协议也近乎标准化,各大厂商的对象存储方案都实现该协议。基本上各家都有提供方便的 SDK 可以用快速调用 S3 服务,不过其中的原理并不是太复杂,笔者一时“手痒”就想打造自己的 S3 客户端。
2024-04-13 17:38:24
3287
原创 连接 IPv6 服务器
首先说一句没,普及 IPv6 还有很长的一段路要走。最简单的,你的节点没有的 IPv6 的 IP,连最简单的 PING 都 PING 不了,完全联不上。
2024-03-25 18:39:02
2714
原创 轻量级角色权限组件
本文采用“用户+角色+权限”的模式设计一个简明的权限组件,力求清晰易维护、易扩展。该组件基于 Spring 后端与 Vue 前端的框架,并给出实际可运行的代码。虽然设计这组件的时候,是打算独立、不耦合的组件,但完整的功能外延还是涉及外部模块,于是最终成品来说,它的相关依赖也离不开 AJ-IAM,属于笔者 AJ-IAM 用户系统的一部分。尽管如此,更重要的是,笔者想借此文来分享“角色-权限”的设计思维与实际应用,以飨读者。
2024-02-20 15:33:14
1057
原创 精简版 Win10 Atlas 使用心得
是一个魔改版本的 Windows,基于 Windows 10 20H2 版定制的操作系统,专门为游戏玩家开发,一切以游戏性能为目标,删除了众多拖慢 Windows 系统的组件(游戏性能下降的罪魁祸首)。
2024-01-21 16:55:08
3144
原创 轻量级 HTTP 请求组件
Apache HttpClient 是著名的 HTTP 客户端请求工具——现在我们模拟它打造一套简单小巧的请求工具库, 封装 Java 类库里面的 HttpURLConnection 对象来完成日常的 HTTP 请求,诸如 GET、HEAD、POST 等等,并尝试应用 Java 8 函数式风格来制定 API。
2024-01-11 22:03:48
1460
原创 探索 3D 图形处理的奥秘
最近一年多来,在 3Dfx、Intel 们的狂轰滥炸中,在 Quake、古墓丽影们的推波助澜下,三维图形已经成为计算机迷眼中的又一个热点。3D 世界到底是怎样的神奇,我们又是怎样享受它的乐趣呢?就让我们来一探究竟吧。
2023-12-30 21:26:56
1739
原创 轻量级的资源授权:基于 OAuth 规范
感觉 OAuth 太负盛名了,以至于后来在 OIDC 反而难以企及前辈 OAuth。倒是大家谈论比较多的是 JWT(例如),——实际谈 JWT 就是在实现 OIDC,反而 OIDC 大家不怎么爱谈!但我们要知道的是,真正诠释这些的,做点单点登录的,——是 OIDC 规范,JWT 只是 OIDC 规范下的一种 Token 协议,再说句难听的,如果 JWT 不满足或者有问题,换别的 Token 实现规则也行。
2023-11-18 15:51:08
264
原创 轻量级 Java 日志组件
日志记录功能在开发中很常用,不仅可以记录程序运行的细节,方便调试,也可以记录用户的行为,是框架中不可或缺的组件。为最大程度复用现有的组件,我们就地取材使用了 JDK 自带的 JUL()作为日志组件,并对其进行功能上的增强。这是笔者 17 年的时候就研究过了(见博客时至今日,感觉还是使用 Slf4J API 的人群多,顺应潮流,决定打造兼容 Slf4J 风格的整合,使用上也更便捷,可结合 Lombok 强大的功能,在类身上施加一个注解即可。
2023-11-18 15:50:20
482
原创 轻量级 SSO 方略:基于 OIDC 规范(二)
介绍了 SSO 相关的基础数据,这样有了 ClientId 和密钥后,我们就要准备客户端这边的代码。客户端当前指的便是一个网站(也就是 RP),这个网站要求有会员功能,典型地网站导航上通常会有“注册”或“登录”的链接。假设我们这是最简单的网站,采用 Servlet Session 本地记录用户凭证。本身这个网站设计用户的模块,得通过 SSO 完成用户登录。另外我们还要准备一个登录页面,简单的例子如下。这个页面存在 SSO 中心(也就是 OP)的,而不是客户端的。
2023-11-13 21:43:27
661
转载 深入研究线程池
线程池就是以一个或多个线程[循环执行]多个应用逻辑的线程集合。注意这里用了线程集合的概念是我生造的,目的是为了区分执行一批应用逻辑的多个线程和线程组的区别.关于线程组的概念请参阅基础部分。那么如果一个线程循环执行一段代码是否是线程池?如果极端而言,应该算,但实际上循环代码应该算上一个逻辑单元。我们说最最弱化的线程池。这就不能说循环中执行多个逻辑单元,因为它只是简单地对循环外部的初始变量执行++操作。而如果已经有一个队列我们说这个线程就是循环执行多个逻辑单元,可以说这个线程是弱化的线程池。
2023-11-06 20:03:28
90
原创 轻量级邮件发送组件:基于 Socket/SMTP 协议的浅层封装
Java 发送邮件组件,大家第一时间想到的就是 JavaMail。JavaMail 本身也不大,才 500kb 的 jar 包,足够轻量级。而今天为大家介绍的,可以说“羽量级”,核心一个类就可以发送邮件了,除了依赖 JDK 无须依赖什么。如果我们了解 SMTP 协议以及 Socket 的简单使用,就知道其中过程并不复杂——实质都是基于文本的协议交互。
2023-11-03 13:44:47
314
转载 微服务安全认证架构是如何演进而来的?
之前有同事问为何要用基于 JWT 令牌的认证架构,然后近期又有童鞋在后台留言问微服务安全认证架构的实践,因此我决定花两篇推文来解答一下。为了答好这个话题,我们先来看看微服务的安全认证架构是如何演进而来的,从而更好地理解。
2023-10-29 19:44:10
162
原创 轻量级 SSO 方略:基于 OIDC 规范(一)
OIDC 是 OpenID Connect,见官网介绍。OIDC 为用户身份认证提供了明确的规范指南,以方便我们更好地设计一个 SSO 产品。
2023-10-29 00:58:18
471
原创 利用 JSqlParser 防止 SQL 注入
高手文章介绍了利用 JSqlParser 防止 SQL 注入,写得很好,只不过有两个问题,代码比较复杂,我于是作了简化,只有两个类;其次检测比较严格,连子查询都禁止,我把它开放了。
2023-10-28 15:54:33
1155
2
原创 嵌入式 Tomcat 调校
SpringBoot 嵌入了 Web 容器如 Tomcat/Jetty/Undertow,——这是怎么做到的?我们以 Tomcat 为例子,尝试调用嵌入式 Tomcat。调用嵌入式 Tomcat,如果按照默认去启动,一个 main 函数就可以了。
2023-10-25 22:35:54
1172
原创 轻量级仿 Spring Boot=嵌入式 Tomcat+Spring MVC
SpringBoot 嵌入了 Web 容器如 Tomcat/Jetty/Undertow,——这是怎么做到的?我们以 Tomcat 为例子,尝试调用嵌入式 Tomcat。为了说明如何打造轻量级的 SpringBoot,本文分为“嵌入式 Tomcat”、“增强 SpringMVC”和“打包/部署”三个小节来介绍。
2023-10-25 18:12:41
1038
原创 轻量级导出 Excel 标准格式
一般业务系统中都有导出到 Excel 功能,其实质就是把数据库里面一条条记录转换到 Excel 文件上。Java 常用的第三方类库有 Apache POI 和阿里巴巴开源的 EasyExcel 等。另外也有通过 Web 模板技术渲染 Excel 文件导出,这实质是 MVC 模式的延伸,数据转为成不同的视图罢了。
2023-10-20 23:06:37
1592
微软百科全书 Encarta 2002 CD-3
2022-02-02
微软百科全书 Encarta 2002 CD-1
2022-02-02
帝视尼电话商务录音系统
2022-02-02
领域驱动设计 精简版 Abel Avram 和 Floyd Marinescu 总结整理
2022-01-29
简简单单用OpenOffice写书 use_OO_for_writing
2022-01-29
SUPER-SCSI-驱动
2021-11-20
商城测试用图片.7z
2020-02-16
DB Browser for SQLite.zip
2019-08-12
HDTunePro 5(Win8修正版).zip
2019-08-12
JDK JavaScript 独立运行时 Nashorn,Java 7 可用
2016-01-10
数据库转换神器 ESF Database Migration Toolkit - Professional
2015-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人