『博客开发日记』之升级 SensitiveUtilServiceImpl

本文最后更新于 2026年5月4日 晚上

升级 SensitiveUtilServiceImpl


前言

书再接上回

完成升级 EmailServiceImpl 的工作后

对敏感词的检测还有一小部分工作要完成

就是还要对用户注册时的用户名,评论和更改用户信息时的昵称进行检测

这些都是会展示在网页里的 所以要进行检测才能展示

代码实现

由于先前在 SensitiveUtilServiceImpl 里写的检测方法博主不参与检测 输入参数多了个邮箱

所以要再写一个相似的方法来对单纯的内容进行检测

这次不管博主还是谁都要进行检测了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
* 敏感词检测(用于用户名、昵称等)
* 不跳过博主检测,所有用户一视同仁
*
* @param content 待检测内容
* @return 是否包含敏感词
*/
@Override
public Boolean checkSensitiveWordsSimple(String content)
{
if (StringUtils.isEmpty(content)) {
return false;
}

//1.本地词库检测
if (SensitiveUtil.containsSensitiveWords(content)) {
// 获取检测到的具体敏感词及其来源文件
java.util.Map<String, String> localSensitiveWordsWithSource = SensitiveUtil.findSensitiveWordsWithSource(content);
log.info("本地词库检测为敏感词(用户名/昵称),检测到的敏感词及来源: {}", localSensitiveWordsWithSource);
return true;
}
log.info("本地词库检测无敏感词(用户名/昵称) >>>>> 进入开源词库检测");
//2.开源词库检测
if (SensitiveWordHelper.contains(content)) {
// 获取开源词库检测到的具体敏感词
java.util.List<String> openSourceSensitiveWords = SensitiveWordHelper.findAll(content);
log.info("开源词库检测为敏感词(用户名/昵称),检测到的敏感词: {}", openSourceSensitiveWords);
return true;
}
log.info("开源词库检测无敏感词(用户名/昵称) >>>>> 进入多ai并行检测");
//3.多AI并行检测
DetectionStatusEnum aiStatus = aiChatService.aiCheckWord(content);
if (aiStatus.shouldBlock()) {
log.info("多AI并行检测为敏感词(用户名/昵称),内容: {}", content);
return true;
}
log.info("多AI并行检测无敏感词(用户名/昵称) >>>>> 检测通过");
return false;
}

SensitiveUtilService 添加接口方法

1
2
3
4
5
6
/**
* 简单敏感词检测(用于用户名、昵称等)
* @param content 待检测内容
* @return 是否包含敏感词
*/
Boolean checkSensitiveWordsSimple(String content);

在更新用户信息中的检测


在注册中的检测


在评论中的检测





PS:该系列只做为作者学习开发项目做的笔记用

不一定符合读者来学习,仅供参考


预告

后续会记录博客的开发过程

每次学习会做一份笔记来进行发表

“一花一世界,一叶一菩提”


版权所有 © 2026 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/


『博客开发日记』之升级 SensitiveUtilServiceImpl
http://example.com/2026/05/04/『博客开发日记』之升级 SensitiveUtilServiceImpl/
作者
云梦泽
发布于
2026年5月4日
更新于
2026年5月4日
许可协议