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

黑马程序员培训在哪里厦门seo服务

黑马程序员培训在哪里,厦门seo服务,网易163邮箱登录入口,网页设计实训总结模板个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Spring Cache框架 简介Spring Cache 环境准备S…

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

Spring Cache框架

    • 简介
    • Spring Cache 环境准备
    • Spring Cache 常用注解使用



简介

  • Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。
    CacheManager是Spring提供的各种缓存技术抽象接口。

针对不同的缓存技术需要实现不同的CacheManager:

在这里插入图片描述




Spring Cache 环境准备


  1. maven依赖导入:
        <!--缓存依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><!--redis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

  1. yml配置文件
spring:cache:redis: # 设置redis缓存time-to-live: 1800000 #设置缓存过期时间,可选

  1. 开启缓存功能
  • 在启动类上使用@EnableCache注解
@Slf4j
@SpringBootApplication
@EnableCaching //开启缓存
public class CacheDemoApplication {public static void main(String[] args) {SpringApplication.run(CacheDemoApplication.class,args);log.info("项目启动成功...");}
}

  1. 操作缓存
  • 在Controller层的方法上使用**@Cacheable、@CacheEvict、@CachePut**等注解,进行缓存操作。



Spring Cache 常用注解使用


在spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存支持即可。


  • @EnableCaching
  • @Cacheable
  • @CachePut
  • @CacheEvict

在这里插入图片描述


  • 可使用用于动态计算密钥的Spring Expression Language (SpEL)表达式。

  • #result表示方法调用结果的引用。

  • #root.method, #root.target, 和 #root.caches分别用于引用方法、目标对象和受影响的缓存的缓存。

  • 方法名(#root.methodName)和目标类(#root.targetClass)

  • 方法参数可以通过索引访问。例如,第二个参数可以通过#root访问:#root.args [1]#p1#a1。如果信息可用,也可以通过名称访问参数



@CachePut注解 案例

    /*** CachePut:将方法返回值放入缓存* value:缓存的名称,每个缓存名称下面可以有多个key* key:缓存的key*/@CachePut(value = "userCache",key = "#user.id")@PostMappingpublic User save(User user){userService.save(user);return user;}



@CacheEvict注解 案例

    /*** CacheEvict:清理指定缓存* value:缓存的名称,每个缓存名称下面可以有多个key* key:缓存的key*/@CacheEvict(value = "userCache",key = "#p0")//@CacheEvict(value = "userCache",key = "#root.args[0]")//@CacheEvict(value = "userCache",key = "#id")@DeleteMapping("/{id}")public void delete(@PathVariable Long id){userService.removeById(id);}



@Cacheable注解 案例

    /*** Cacheable:在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中* value:缓存的名称,每个缓存名称下面可以有多个key* key:缓存的key* condition:条件,满足条件时才缓存数据(无法使用#result等对象)* unless:满足条件则不缓存*///根据id获取信息@Cacheable(value = "userCache",key = "#id",unless = "#result == null")@GetMapping("/{id}")public User getById(@PathVariable Long id){User user = userService.getById(id);return user;}//获取所有消息@Cacheable(value = "userCache",key = "#user.id + '_' + #user.name")@GetMapping("/list")public List<User> list(User user){LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(user.getId() != null,User::getId,user.getId());queryWrapper.eq(user.getName() != null,User::getName,user.getName());List<User> list = userService.list(queryWrapper);return list;}




在这里插入图片描述

http://www.ysxn.cn/news/3606.html

相关文章:

  • 网站建设的客户提高百度快速排名
  • wordpress中css样式表seo是付费还是免费推广
  • 做网站前景推广软文平台
  • 网站企业备案改个人备案做seo要投入什么
  • 我想给赌博网站做代理seo推广外包
  • 沂南建设局网站佛山网站搜索排名
  • 如何通过网站开发客户网站品牌推广公司
  • 有的网站打开慢图片外链在线生成网址
  • 国内网站设计关于seo如何优化
  • 网站建设环境软件有哪些金昌网站seo
  • 长沙网站建设推广谷歌商店下载安装
  • wordpress上传excel文件seo怎么收费的
  • 查看网站开发语言方法一个自己的网站
  • 重庆地区专业做网站的公司seo优化网络推广
  • 恢复网址北京百度seo排名公司
  • 网站首页浮动广告怎么做浙江关键词优化
  • 个人网站 做外贸百度一下官方网页
  • 怎么看网站哪个公司做的app推广渠道在哪接的单子
  • 想学做网站学什么编程语言seo整站优化哪家好
  • 网站开发技术语言的选择账号权重查询入口站长工具
  • 微信营销的技巧百度seo排名报价
  • wordpress导入导出视频优化软件
  • 制作企业网站的公司线上培训机构排名前十
  • 外贸人常用的网站企业网站推广公司
  • 用卫生纸做的礼物街网站网络推广长沙网络推广
  • 一级造价工程师报考条件及时间seo自己怎么做
  • 网站优化的监测评估如何制作网页教程
  • 中国房产网英文seo
  • 唯一做魅惑的网站seo流量增长策略
  • 做公众号首图的设计网站百度学术官网入口