Spring Cache

简介: Spring Cache

当涉及到 Spring Boot Web 开发,了解 Spring Cache、Spring Task 和 WebSocket 框架是非常重要的。让我们逐个进行介绍和入门了解:

1. Spring Cache

Spring Cache 是 Spring 框架提供的缓存抽象,它允许开发者通过简单的注解来实现方法级别的缓存。使用 Spring Cache 可以显著提高应用程序的性能,尤其是对于频繁访问、计算开销大的方法。

入门示例

首先,确保在 pom.xml 中引入 Spring Cache 的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

然后,在 Spring Boot 应用程序中使用 @EnableCaching 注解启用缓存功能:

import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableCaching
public class CacheConfig {
   
    // 可以配置缓存管理器等
}

接下来,通过在需要缓存的方法上添加 @Cacheable 注解来实现缓存:

import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

@Service
public class MyService {
   

    @Cacheable("myCache")
    public String getCachedData(String key) {
   
        // 这里可以是查询数据库或其他耗时操作
        return "Cached data for key: " + key;
    }
}

以上示例中,@Cacheable("myCache") 表示方法返回的结果将被缓存到名为 myCache 的缓存区域中,如果相同的 key 被传递给 getCachedData 方法,则不会实际执行方法体,而是直接返回缓存的结果。

2. Spring Task

Spring Task(也称为 Spring Boot Task Scheduling)允许开发者在特定的时间间隔或固定的时间执行方法,类似于传统的定时任务功能。它基于标准的 java.util.concurrent.ScheduledExecutorService 来实现。

入门示例

在 Spring Boot 应用程序中创建一个定时任务,可以使用 @Scheduled 注解:

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyTask {
   

    // 每隔一分钟执行一次
    @Scheduled(fixedRate = 60000)
    public void executeTask() {
   
        // 执行需要定时执行的操作
        System.out.println("Scheduled task executed at: " + new Date());
    }
}

在上述示例中,@Scheduled(fixedRate = 60000) 表示 executeTask 方法将每隔 60 秒执行一次。

3. WebSocket 框架

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它允许客户端和服务器之间进行双向通信,以实时更新数据。Spring 提供了对 WebSocket 的支持,使得在 Spring Boot 中集成 WebSocket 变得相对简单。

入门示例

首先,确保在 pom.xml 中引入 Spring WebSocket 的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

然后,创建一个 WebSocket 处理器类:

import org.springframework.stereotype.Component;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;

@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
   

    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
   
        // 处理收到的文本消息
        String payload = message.getPayload();
        session.sendMessage(new TextMessage("Received: " + payload));
    }
}

在上述示例中,MyWebSocketHandler 类继承自 TextWebSocketHandler,重写了 handleTextMessage 方法来处理客户端发送的文本消息,并向客户端发送响应消息。

总结

以上是关于 Spring Cache、Spring Task 和 WebSocket 框架的简单入门介绍和示例。通过这些功能,Spring Boot 提供了强大的支持,使得在 Web 开发中处理缓存、定时任务和实时通信变得更加简单和高效。

目录
相关文章
|
6月前
|
存储 缓存 Java
【Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存的工作原理、缓存注解的使用方法与最佳实践
【Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存的工作原理、缓存注解的使用方法与最佳实践
|
6月前
|
缓存 NoSQL Java
Spring Cache 缓存原理与 Redis 实践
Spring Cache 缓存原理与 Redis 实践
343 0
|
存储 缓存 NoSQL
快速入门:Spring Cache
快速入门:Spring Cache
84 0
|
6月前
|
XML 存储 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache管理器的实战开发指南(修正篇)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache管理器的实战开发指南(修正篇)
111 0
|
5月前
|
缓存 NoSQL Java
在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
277 0
|
6月前
|
缓存 NoSQL Java
Spring Boot 3 整合 Spring Cache 与 Redis 缓存实战
Spring Boot 3 整合 Spring Cache 与 Redis 缓存实战
|
3月前
|
缓存 NoSQL Java
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
Spring Cache 是 Spring 提供的简易缓存方案,支持本地与 Redis 缓存。通过添加 `spring-boot-starter-data-redis` 和 `spring-boot-starter-cache` 依赖,并使用 `@EnableCaching` 开启缓存功能。JetCache 由阿里开源,功能更丰富,支持多级缓存和异步 API,通过引入 `jetcache-starter-redis` 依赖并配置 YAML 文件启用。Layering Cache 则提供分层缓存机制,需引入 `layering-cache-starter` 依赖并使用特定注解实现缓存逻辑。
953 1
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
|
6月前
|
存储 XML 缓存
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南(一)
【深入浅出Spring原理及实战】「缓存Cache开发系列」带你深入分析Spring所提供的缓存Cache功能的开发实战指南
450 0
|
6月前
|
缓存 NoSQL Java
Spring Cache之本地缓存注解@Cacheable,@CachePut,@CacheEvict使用
SpringCache不支持灵活的缓存时间和集群,适合数据量小的单机服务或对一致性要求不高的场景。`@EnableCaching`启用缓存。`@Cacheable`用于缓存方法返回值,`value`指定缓存名称,`key`定义缓存键,可按SpEL编写,`unless`决定是否不缓存空值。当在类上使用时,类内所有方法都支持缓存。`@CachePut`每次执行方法后都会更新缓存,而`@CacheEvict`用于清除缓存,支持按键清除或全部清除。Spring Cache结合Redis可支持集群环境。
375 6
|
6月前
|
缓存 Java Spring
单体项目中资源管理模块集成Spring Cache
该内容是关于将Spring Cache集成到资源管理模块以实现缓存同步的说明。主要策略包括:查询时添加到缓存,增删改时删除相关缓存。示例代码展示了@Service类中使用@Transactional和@Cacheable注解进行缓存操作,以及在RedisTemplate中处理缓存的示例。
46 5