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

外贸建站上海织梦网站怎么做伪静态页面

外贸建站上海,织梦网站怎么做伪静态页面,深圳有哪些物流公司,如何形容一个网站做的好系列文章目录 分页查询–Java项目实战篇 全局异常处理–Java实战项目篇 完善登录功能–过滤器的使用 更多该系列文章请查看我的主页哦 文章目录系列文章目录前言一、Spring Cache介绍二、Spring Cache的使用1. 导入依赖2. 配置信息3. 在启动类上添加注解4. 添加注解4.1 CacheP…

系列文章目录

分页查询–Java项目实战篇
全局异常处理–Java实战项目篇
完善登录功能–过滤器的使用
更多该系列文章请查看我的主页哦


文章目录

  • 系列文章目录
  • 前言
  • 一、Spring Cache介绍
  • 二、Spring Cache的使用
    • 1. 导入依赖
    • 2. 配置信息
    • 3. 在启动类上添加注解
    • 4. 添加注解
      • 4.1 @CachePut注解
      • 4.2 @CacheEvict注解
      • 4.3 @Cacheable注解
  • 查看Redis存入的数据
  • 总结


前言

在我们学习完Redis缓存之后,明白了为什么要使用Redis。也通过学习写代码练习时需要使用Redis进行大量的设置值、删除值、还有大量的逻辑判断将数据加入或删除Redis缓存。虽说逻辑方面也比较简单,但太过于繁琐。每个方法都得注入RedisTemplate,使用redisTemplate.opsForValue().set(phone,code,60L, TimeUnit.SECONDS)这样的代码。才能使得数据库中的数据与Redis缓存中的数据保持一致从而避免用户读到的数据是脏数据(修改前的数据,与数据库的数据不一致现象)。

然而Spring就给我们提供了Spring Cache框架,来减少这部分的麻烦。使我们的开发可以更多的关注于业务逻辑。下面这篇文章我们就来讲述这个框架的使用。


一、Spring Cache介绍

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

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

  • EhCacheCacheManager 使用EhCache作为缓存技术
  • GuavaCacheManager 使用Google的GuavaCache作为缓存技术
  • RedisCacheManager 使用Redis作为缓存技术

这里我们就用RedisCacheManager作为缓存技术来练习。

二、Spring Cache的使用

1. 导入依赖

在pom.xml文件中添加redis依赖和spring提供的cache依赖。
代码如下:

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

2. 配置信息

在application.yml文件中添加redis的一些基础信息,和连接Mysql数据库一样将基本的密码,端口等配置上去。time-to-live: 1800000的单位为秒,表示缓存中存入的数据在多少秒后清除。

代码如下:

spring:redis:host: localhostport: 6379#password:database: 0cache:redis:time-to-live: 1800000

3. 在启动类上添加注解

在启动类上添加开启缓存注解功能的注解:@EnableCaching

代码如下:

@EnableCaching //开启缓存注解功能
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class,args);log.info("项目启动成功...");}
}

4. 添加注解

4.1 @CachePut注解

@CachePut注解在执行添加操作时,将新的数据添加到Redis缓存中,以便于数据库查询的值和展示的数据一致。Redis底层执行的是set操作。

注解里的参数第一个数该缓存的名称“value”,第二个参数是设置一个key(作为缓存数据的key)。如下述代码就会将新增的这条数据添加到Redis缓存中。

    @PostMapping@CachePut(value = "setmealCache",key = "#setmealDto.categoryId+'_'+#setmealDto.status")public R<String> save(@RequestBody SetmealDto setmealDto){setmealService.saveWithDish(setmealDto);return R.success("新增套餐成功");}

4.2 @CacheEvict注解

@CacheEvict注解执行修改、删除数据操作时删除对应的所有该名称(value=值)下的缓存数据,以便于数据库查询的值和展示的数据一致。Redis底层执行的是del(删除)操作。

下次在删除修改完后查询时就会重新执行sql语句去数据库中查询数据,这样就使得数据库与缓存数据一致。

    @PutMapping@CacheEvict(value = "setmealCache",allEntries = true)public R<String> update(@RequestBody SetmealDto setmealDto){setmealService.updateWithDish(setmealDto);return R.success("修改成功");}

4.3 @Cacheable注解

@Cacheable注解和上面的参数也是相同的,将查询的数据放到Redis中,所以Redis底层代码也是做的set操作。

    @GetMapping("/list")//将返回的结果存入redis缓存中@Cacheable(value = "setmealCache",key = "#setmeal.categoryId+'_'+#setmeal.status")public R<List<Setmeal>> list(Setmeal setmeal){LambdaQueryWrapper<Setmeal> queryWrapper=new LambdaQueryWrapper<>();queryWrapper.eq(setmeal.getCategoryId()!=null,Setmeal::getCategoryId,setmeal.getCategoryId());queryWrapper.eq(setmeal.getStatus()!=null,Setmeal::getStatus,setmeal.getStatus());queryWrapper.orderByDesc(Setmeal::getUpdateTime);List<Setmeal> list = setmealService.list(queryWrapper);return R.success(list);}

查看Redis存入的数据

在Redis中我们也可以看到和我们注解中的信息能够对应的上。
如下图所示:
在这里插入图片描述

总结

这就是Spring Cache框架的简单使用,可以更加快捷的将Redis缓存中的数据存入或删除。逻辑方面也不需要我们去编写(像以前在查询时先看缓存中是否有该数据,如果有直接返回数据,没有在进行sql语句查询数据库将数据返回并且存入Redis的逻辑)。学习完spring cache框架后我们只需要在方法上加注解设置value、key的值就可以了。
心态还需努力呀~

http://www.yayakq.cn/news/727791/

相关文章:

  • 用wordpress仿一个网站电子商务网站如何进行维护和推广
  • 外贸网站建设有什么需要注意的吗自己做网站可以吗
  • 财政局网站建设方案建设手机网站经验分享
  • 怎样帮别人做网站新手如何做好网络营销推广
  • 上海 有哪些做网站的公司淘宝网站建设基本流程图
  • 网站开发需要哪些硬件网站推荐广告模板
  • 大淘客网站如何做seo淄博企业建网站
  • 如何提升wordpress网站速度域名大全免费看
  • 娄底网站建设79ld做网站价格ihanshi
  • 网站建设及维护费用公司网站兰州建设需要多少钱
  • 学校英文版网站建设方案做电商的常去网站
  • 做黄页网站要告我网站建设SEO优化哪家好
  • 跨境电商网站建设流程成都市公服单页网站后台
  • 摄影设计网站seo网站优化工具大全
  • 学校部门网站建设wordpress4.5.3中文版
  • 深圳 网站建设培训网站推广排名教程
  • 恩施网站开发英文网站设计哪里好
  • 中国建设银行云南省分行官方网站校园网站建设途径
  • 模板网站的劣势站长网站推广
  • 怎么用vscode做网站深圳十大人力资源公司
  • 手机网站建设图西安网页设计师培训班
  • 网站建设的流程和内容h5个人网页设计心得
  • 国外网站 模板使用top域名做网站
  • 网站网址注册wordpress如何本地安装
  • 长丰网站制作兰州市建设工程招标投标中心网站
  • 国家批准做新闻的网站给用ps做的网站加div
  • 修改已经有的网站怎么修改网站建设优化过程中的优化策略
  • 购物网站建设目标做电脑租赁网站
  • 手机浏览微网站网络设计图怎么做
  • 辖网站建设网站锚点