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

聊城哪儿做网站便宜手游推广代理平台有哪些

聊城哪儿做网站便宜,手游推广代理平台有哪些,在线网站建设收费,个人建网站运营.在 Spring Boot 应用中,缓存是提升性能的重要手段之一。为了更方便地使用缓存,我们可以设计一套通用的本地缓存工具类,封装常见的缓存操作,简化开发流程。本文将详细介绍如何设计并实现一套 Spring Boot 本地缓存工具类&#xff0…

在 Spring Boot 应用中,缓存是提升性能的重要手段之一。为了更方便地使用缓存,我们可以设计一套通用的本地缓存工具类,封装常见的缓存操作,简化开发流程。本文将详细介绍如何设计并实现一套 Spring Boot 本地缓存工具类,并提供完整代码示例。


1. 工具类设计目标

在设计缓存工具类时,我们需要考虑以下目标:

  1. 通用性:工具类应支持多种缓存操作,如获取、添加、更新、删除等。
  2. 易用性:通过简单的 API 调用即可完成缓存操作,减少重复代码。
  3. 灵活性:支持自定义缓存过期时间、缓存键生成策略等。
  4. 可扩展性:工具类应易于扩展,支持不同的缓存实现(如 Caffeine、Guava 等)。

2. 工具类实现

2.1 添加依赖

首先,在 pom.xml 中添加 Spring Boot 缓存支持的依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId>
</dependency>

2.2 启用缓存

在 Spring Boot 启动类上添加 @EnableCaching 注解,启用缓存功能:

@SpringBootApplication
@EnableCaching
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

2.3 缓存工具类实现

以下是一个通用的本地缓存工具类实现,基于 Spring 的 CacheManager 和 Caffeine 缓存库:

package com.example.cache;import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;import javax.annotation.Resource;
import java.util.concurrent.Callable;/*** 本地缓存工具类*/
@Component
public class LocalCacheUtil {@Resourceprivate CacheManager cacheManager;/*** 获取缓存值** @param cacheName 缓存名称* @param key       缓存键* @return 缓存值*/public <T> T get(String cacheName, Object key) {Cache cache = getCache(cacheName);if (cache != null) {Cache.ValueWrapper valueWrapper = cache.get(key);if (valueWrapper != null) {return (T) valueWrapper.get();}}return null;}/*** 获取缓存值,如果不存在则通过 loader 加载** @param cacheName 缓存名称* @param key       缓存键* @param loader    缓存加载器* @return 缓存值*/public <T> T get(String cacheName, Object key, Callable<T> loader) {Cache cache = getCache(cacheName);if (cache != null) {return cache.get(key, loader);}return null;}/*** 添加缓存** @param cacheName 缓存名称* @param key       缓存键* @param value     缓存值*/public void put(String cacheName, Object key, Object value) {Cache cache = getCache(cacheName);if (cache != null) {cache.put(key, value);}}/*** 删除缓存** @param cacheName 缓存名称* @param key       缓存键*/public void evict(String cacheName, Object key) {Cache cache = getCache(cacheName);if (cache != null) {cache.evict(key);}}/*** 清空缓存** @param cacheName 缓存名称*/public void clear(String cacheName) {Cache cache = getCache(cacheName);if (cache != null) {cache.clear();}}/*** 获取缓存对象** @param cacheName 缓存名称* @return 缓存对象*/private Cache getCache(String cacheName) {if (!StringUtils.hasText(cacheName)) {throw new IllegalArgumentException("缓存名称不能为空");}return cacheManager.getCache(cacheName);}
}

3. 工具类使用示例

3.1 配置缓存

application.yml 中配置 Caffeine 缓存:

spring:cache:type: caffeinecaffeine:spec: maximumSize=1000,expireAfterWrite=10m

3.2 使用工具类

在业务代码中,可以通过注入 LocalCacheUtil 来使用缓存工具类:

@Service
public class BookService {@Resourceprivate LocalCacheUtil localCacheUtil;/*** 获取书籍信息*/public Book getBookById(Long id) {// 先从缓存中获取Book book = localCacheUtil.get("books", id);if (book == null) {// 如果缓存中不存在,则从数据库加载book = loadBookFromDatabase(id);// 将结果放入缓存localCacheUtil.put("books", id, book);}return book;}/*** 更新书籍信息*/public void updateBook(Book book) {// 更新数据库updateBookInDatabase(book);// 更新缓存localCacheUtil.put("books", book.getId(), book);}/*** 删除书籍信息*/public void deleteBookById(Long id) {// 删除数据库记录deleteBookFromDatabase(id);// 删除缓存localCacheUtil.evict("books", id);}// 模拟从数据库加载书籍信息private Book loadBookFromDatabase(Long id) {// 这里模拟数据库查询return new Book(id, "Spring Boot Guide", "Author Name");}// 模拟更新数据库private void updateBookInDatabase(Book book) {// 这里模拟数据库更新}// 模拟删除数据库记录private void deleteBookFromDatabase(Long id) {// 这里模拟数据库删除}
}

4. 工具类的优势

  1. 简化缓存操作:通过工具类封装,业务代码中只需调用简单的方法即可完成缓存操作。
  2. 统一管理缓存:所有缓存操作都通过工具类进行,便于维护和扩展。
  3. 支持多种缓存策略:可以通过配置灵活调整缓存过期时间、最大容量等参数。
  4. 易于扩展:如果需要切换缓存实现(如从 Caffeine 切换到 Ehcache),只需修改配置,无需改动业务代码。

5. 总结

本文设计并实现了一套 Spring Boot 本地缓存工具类,通过封装 Spring 的 CacheManager 和 Caffeine 缓存库,提供了简单易用的缓存操作 API。该工具类可以显著简化缓存的使用,提升开发效率,同时具备良好的扩展性和灵活性。希望本文能帮助你更好地理解和使用 Spring Boot 中的本地缓存功能。

如果你有任何问题或建议,欢迎在评论区留言讨论!

http://www.dtcms.com/wzjs/430796.html

相关文章:

  • tp5网站文档归档怎么做微商怎么引流被别人加
  • 网站建设佛google本地搜索
  • 中国建设积分商城网站学网络运营在哪里学比较好
  • 建立自己网站要多少钱互联网营销师教材
  • 深圳做网站排名哪家好国外浏览器搜索引擎入口
  • 郑州高端网站seo技术培训学校
  • 定制网站建设服务官网站内推广内容
  • 网站做权重百度新闻网站
  • 成都网站开发建设网络推广平台
  • wordpress页面关键词和描述西安百度seo推广
  • 动态网站怎么做伪静态网站交换链接营销实现方式解读
  • 上海期货配资网站开发网站是怎么做的
  • 陕西网站开发企业app开发教程
  • 响应式网站建设济南公司网站建设哪家公司好
  • 环县网站怎么做深圳百度公司地址在哪里
  • 不需要证件做网站如何搭建网站平台
  • 泉州网页模板建站青岛百度代理公司
  • 青岛开发区网站建设公司网络推广都有哪些平台
  • 网站建设 乐清网络公司seo网站优化知识
  • 陕西省建设资格注册中心网站广告传媒公司
  • linux 网站建设网络营销论文5000字
  • 中山祥云做的网站怎么样百度百科湖南seo技术培训
  • ppt网站建设推广平台 赚佣金
  • 网站建设应遵守的原则个人怎么在百度上做推广
  • 公关策划网站建设深圳门户网站
  • 如何说服别人做网站免费html网页模板
  • 女女做网站推广赚佣金
  • discuz视频网站模板新发布的新闻
  • 做商城外贸网站百度搜索页
  • 做网站的基础架构济南百度推广公司电话