Spring Boot读取resources目录下文件(打成jar可用),并放入Guava缓存

news/2024/10/21 9:31:03/

1、文件所在位置:
在这里插入图片描述
2、需要Guava依赖:

        <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>

3、启动时就读取放入缓存的代码:

@Service
@AllArgsConstructor
@Slf4j
public class SensitiveCheckService {private static final Cache<String, String> SENSITIVE_WORDS_CACHE = CacheBuilder.newBuilder()// 设置缓存容量数.maximumSize(1).build();static {try {ClassLoader classLoader = DemoApplication.class.getClassLoader();Enumeration<URL> resources = classLoader.getResources("static/sensitive/敏感词库.txt");List<String> allSensitiveList = new ArrayList<>();while (resources.hasMoreElements()) {URL resource = resources.nextElement();BufferedReader reader = new BufferedReader(new InputStreamReader(resource.openStream(), "utf-8"));String line;while ((line = reader.readLine()) != null) {// 一行行读取allSensitiveList.add(line);}SENSITIVE_WORDS_CACHE.put(RedisKeyConstant.ALL_SENSITIVE_WORDS, JSON.toJSONString(allSensitiveList));}} catch (Exception e) {log.error("加载敏感词失败", e);}}public List<String> getSensitiveWordsCache() {return JSON.parseArray(SENSITIVE_WORDS_CACHE.getIfPresent(RedisKeyConstant.ALL_SENSITIVE_WORDS), String.class);}}

Guava的缓存类似于redis。比起Redis,Guava的缓存优势在于更轻更快,而Redis的优势在于支持分布式


http://www.ppmy.cn/news/1538080.html

相关文章

iOS18 第三库YYCache中sqlite3_finalize(stmt)调用报错修复

YYCache的YYKVStorage类中的有sqlite3_finalize(stmt)调用时报错一劳永逸无损修复 .h #import "YYKVStorage.h"NS_ASSUME_NONNULL_BEGIN interface YYKVStorage (Fix) property (nonatomic, readonly) NSString *path; ///< The path of this storage. p…

Fortran 学习笔记001

1.输入输出及声明 1.1 Fortran程序的主要结构 程序通常以program描述来开头&#xff0c;后接定义的程序名&#xff08;可以省略&#xff0c;但建议使用并取有意义的名称&#xff0c;便于阅读&#xff09;&#xff0c;最后以end描述结尾&#xff0c;可以有三种方式&#xff1a…

【机器学习】逻辑回归|分类问题评估|混淆矩阵|ROC曲线|AUC指标 介绍及案例代码实现

文章目录 逻辑回归逻辑回归简介逻辑回归的数学基础逻辑回归原理概念损失函数 逻辑回归API函数和案例案例癌症分类预测 分类问题评估混淆矩阵分类评估方法 - 精确率 召回率 F1ROC曲线 AUC指标案例AUC 计算的API分类评估报告api 电信客户流失预测案例 逻辑回归 逻辑回归简介 ​…

UniApp适合哪些场景

UniApp作为一款跨平台的移动应用开发框架&#xff0c;因其高效、灵活和强大的特性&#xff0c;适用于多种应用场景。以下是一些UniApp适用的主要场景&#xff1a; 多平台应用开发&#xff1a; 对于需要同时在iOS、Android、Web以及各种小程序平台发布的应用&#xff0c;UniApp可…

基于VUE+SSM问卷调查管理系统JAVA|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

让机器人融入生活?GR-2让科幻电影场景成真

GR-2 在科幻电影中&#xff0c;我们经常能看到人类通过远程操控机器人完成各种复杂任务的场景。而今天&#xff0c;这样的科幻场景正在成为现实。随着字节跳动研究团队最新推出的第二代机器人大模型GR-2&#xff08;Generative Robot 2.0&#xff09;的问世&#xff0c;我们离梦…

【计算机网络 - 基础问题】每日 3 题(二十九)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞…

T-Box联网安全定义

T-Box&#xff0c;即Telematics BOX&#xff0c;也称远程信息处理控制单元&#xff08;Telematics Control Unit&#xff0c;TCU&#xff09;&#xff0c;是车联网中的重要组成部分。它集成了GPS、外部通信接口、电子处理单元、微控制器、移动通信单元和存储器等功能模块&#…