@CachePut |学习笔记

简介: 快速学习 @CachePut

开发者学堂课程【SpringBoot 快速掌握 - 高级应用:@CachePut】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/613/detail/9292


@CachePut

@CachePut:

既调用方法,又更新缓存数据;同步更新缓存

修改了数据库的某个数据,同时更新缓存;

运行时机:

先调用目标方法

将只标玄法的结果缓存起来

测试步骤:

查询1号员工;查到的结果会放到缓存中

以后查询还是之前的结果

更新1号员工;【lastName:zhangsan;gender:θ】

将方法的返回值也放进缓存了;

*key:传入的 employee 对象值:返回的 employee 对象;

*key="#employee. id":使用传入的参数的员工 id;key=“#result. id:使用返回后的 id Qeachacle 的 key 是不能用 #result

@CachePut(value="emp",key="#result.id")

public Employee updateEmp(Employee employee){

System. out. println("updateEmp:"+emplo/ee);

emp1oyeeMapper .updateEmp(employee);

return employee;

查询1号员工?  

应该是更新后的员工;

为什么是没更新前的?

因为第一步查询后放入了缓存中,1号员工在缓存中没有更新。

更新之后会给缓存中放 key

@Cach&Put(value="emp")

publicEmployeeupdateEmp(Employee employee){ employeeaper .updatemρ(emρleme); return employee;

}

}

package com. atguigu. cache.  controller ;

import...

@ RestController

public class  EmployeeController {

@Autowired

EmployeeService  em  ployeeService ;

@ GetMapping ("/emp/{id}")

publicEmployeegetEmployee (@ PathVariable ("id")Integerid){Employee employee= employeeService .getEmp(id);  

return employee;

}

@ GetMapping ("/empj")

public Employee update(Employee employee){

Employee emp= emp1oyeeService .updateEmp(employee);

return emp;

}

相关文章
|
安全 Java API
Spring Security实现RBAC权限管理
Spring Security实现RBAC权限管理 一简介 在企业应用中,认证和授权是非常重要的一部分内容,业界最出名的两个框架就是大名鼎鼎的 Shiro和Spring Security。
7055 0
|
JSON Java API
玩转Spring Boot之RestTemplate的使用
在java代码里想要进行restful web client服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。Spring Boot提供了一种简单便捷的内置模板类来进行操作,这就是RestTemplate。
6263 0
|
7月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
7月前
|
人工智能 安全 Java
spring boot 权限管理的几种方式
Spring Boot 提供多种权限管理方式,包括基于角色的访问控制(RBAC)、基于属性的访问控制(ABAC)和基于访问控制列表(ACL)。RBAC 通过角色简化权限管理;ABAC 根据用户、资源和环境属性实现细粒度控制;ACL 则为每个资源定义访问控制列表。文中以 Spring Security 为例,详细展示了每种方法的配置与实现步骤,帮助开发者根据项目需求选择合适的权限管理方案。示例涵盖依赖添加、类配置及注解使用等关键环节。
1383 0
|
11月前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
653 64
SpringBoot项目打war包流程
|
存储 Java API
Java——Stream流详解
Stream流是JDK 8引入的概念,用于高效处理集合或数组数据。其API支持声明式编程,操作分为中间操作和终端操作。中间操作包括过滤、映射、排序等,可链式调用;终端操作则完成数据处理,如遍历、收集等。Stream流简化了集合与数组的操作,提升了代码的简洁性
1454 11
Java——Stream流详解
|
缓存 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` 依赖并使用特定注解实现缓存逻辑。
3007 1
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
|
应用服务中间件
Tomcat请求特殊字符参数问题:Invalid character found in the request target. The valid characters are defined in
Tomcat请求特殊字符参数问题:Invalid character found in the request target. The valid characters are defined in
1459 0
Tomcat请求特殊字符参数问题:Invalid character found in the request target. The valid characters are defined in
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function<T, R>`用于转换操作,`Predicate<T>`用于布尔判断,`Consumer<T>`用于消费输入,`Supplier<T>`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
429 0
|
缓存 NoSQL Java
一个轻量级 Java 权限认证框架——Sa-Token
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。