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

企业门户网站建设信息河北手机网站制作企业

企业门户网站建设信息,河北手机网站制作企业,20条优化措施,建设一个网站最低消费Spring Cache 文章目录 Spring Cache1、Spring Cache介绍2、Spring Cache常用注解2.1、EnableCaching注解2.2、CachePut注解2.3、CacheEvict注解2.4、Cacheable注解 3、Spring Cache使用方式--redis 1、Spring Cache介绍 Spring Cache是一个框架#xff0c;实现了基于注解的缓…Spring Cache 文章目录 Spring Cache1、Spring Cache介绍2、Spring Cache常用注解2.1、EnableCaching注解2.2、CachePut注解2.3、CacheEvict注解2.4、Cacheable注解 3、Spring Cache使用方式--redis 1、Spring Cache介绍 Spring Cache是一个框架实现了基于注解的缓存功能只需要简单地加一个注解就能实现缓存功能.Spring Cache提供了一层抽象底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。 针对不同的缓存技术需要实现不同的CacheManager: CacheManager描述EhCacheCacHManager使用EhCache作为缓存技术GuavaCacheManager使用Google的GuavaCache作为缓存技术RedisCacheManager使用Redis作为缓存技术 2、Spring Cache常用注解 注解说明EnableCaching开启缓存注解功能Cacheable在方法执行前spring先查看缓存中是否有数据如果有数据则直接返回缓存数据;若没有数据调用方法并将方法返回值放到缓存中CachePut将方法的返回值放到缓存中cacheEvict将一条或多条数据从缓存中删除 在spring boot项目中使用缓存技术只需在项目中导入相关缓存技术的依赖包并在启动类上使用EnableCaching开启缓存支持即可。 例如使用Redis作为缓存技术只需要导入Spring data Redis的maven坐标即可。 我们在使用简单的缓存技术的时候不用单独映入相应的依赖使用spring-boot-starter-web这个包即可但是要使用redis作为缓存就需要额外的引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependency2.1、EnableCaching注解 在启动类上加上注解EnableCaching 2.2、CachePut注解 Autowired private CacheManager cacheManager;Autowired private UserService userService;/*** CachePut:将方法的返回值放入缓存* value缓存名称 每个缓存可以有多个key* key缓存的key #result.id:动态生成keyName进行缓存***/ CachePut(value userCache,key#result.id) // CachePut(value userCache,key#user.name) //将user-name作为缓存名 // CachePut(value userCache,key#user.id) //将user-id作为缓存名 PostMapping public User save(User user){userService.save(user);return user; }key值参数引用SpEL动态获取的说明 该注解在没有缓存配置如redis的时候会将数据缓存在ConcurrentMap里面但是此缓存操作不具有持久化的储存在服务重启之后会数据丢失。解决方法是使用Redis等缓存中间件。 2.3、CacheEvict注解 DELETE /*** CacheEvict:清理指定缓存* value缓存名称 每个缓存可以有多个key* key缓存的key #result.id:动态生成keyName进行缓存*/ CacheEvict(value userCache,key #id) //CacheEvict(value userCache,key #p0) //CacheEvict(value userCache,key #root.args[0]) // 上述三种方式都是相同的效果动态获取id的参数作为缓存的唯一标识 DeleteMapping(/{id}) public void delete(PathVariable Long id){userService.removeById(id); }UPDATE CacheEvict(value userCache,key #user.id) //CacheEvict(value userCache,key #p0.id) //CacheEvict(value userCache,key #root.args[0].id) //CacheEvict(value userCache,key #result.id) PutMapping public User update(User user){userService.updateById(user);return user; }2.4、Cacheable注解 /*** Cacheable在方法执行前spring先查看缓存中是否有数据* 如果有数据则直接返回缓存数据;若没有数据调用方法并将方法返回值放到缓存中;* value缓存名称 每个缓存可以有多个key* key缓存的key #result.id:动态生成keyName进行缓存* condition满足条件就进行缓存,无法使用#result* unless满足条件就不进行缓存可以使用#result--看源码注解*/ Cacheable(value userCache, key #id, condition #unless null)GetMapping(/{id})public User getById(PathVariable Long id) {User user userService.getById(id);return user;}在方法执行前spring先查看缓存中是否有数据如果有数据则直接返回缓存数据;若没有数据调用方法并将方法返回值放到缓存中。 Cacheable(value userCache, key #user.id_#user.name) //多个变量的拼接 GetMapping(/list) public ListUser list(User user) {LambdaQueryWrapperUser queryWrapper new LambdaQueryWrapper();queryWrapper.eq(user.getId() ! null, User::getId, user.getId());queryWrapper.eq(user.getName() ! null, User::getName, user.getName());ListUser list userService.list(queryWrapper);return list; }3、Spring Cache使用方式–redis 在Spring Boot项目中使用Spring Cache的操作步骤(使用redis缓存技术): 1、导入maven坐标 spring-boot-starter-data-redis、spring-boot-starter-cache dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency 2、配置application.yml spring:redis:host: 127.0.0.1port: 6379password: 123456database: 0cache:redis:time-to-live: 1800000 #设置缓存过期时间可选3、在启动类上加入EnableCaching注解开启缓存注解功能 4、在Controller的方法上加入Cacheable、CacheEvict等注解进行缓存操作 Demo项目源码SpringCache-Demo
http://www.zqtcl.cn/news/659800/

相关文章:

  • 中介网站制度建设wordpress genesis
  • 广东贸易网站开发用数据库做学校网站论文
  • 关于省钱的网站名字东莞哪些网络公司做网站比较好
  • net网站建设多少前MAC怎么做网站
  • 创建网站流程图国内高清图片素材网站推荐
  • 淄博住房和城乡建设局网站建设外贸网站哪家好
  • dede网站地图路径密云区免费网站建设
  • 男女做那事是什 网站软文网
  • 安徽建海建设工程有限公司网站活动推广宣传方案
  • 镇江市建设审图网站关键词优化过程
  • 广州个人网站备案要多久手机软件界面设计
  • 网站建设成都公司哪家好wordpress悬浮代码
  • 制作网站服务公司wordpress文章添加关注公众号
  • 陶瓷企业 瓷砖地板公司网站建设视频解析wordpress
  • 城乡建设厅网站首页wordpress模板汉化教程视频
  • 网站建设怎么设置渐变色手机网站开发服务商
  • 网站备案用座机租用南宁网站建设优化排名
  • 网页制作与网站建设实战大全读后感霞浦建站公司
  • 网站运营与网络推广方案搜索引擎关键字排名优化
  • 前端角度实现网站首页加载慢优化王业美三个字组成的子
  • 阜阳网站是用idea做html网站
  • 商业网站可以选择.org域名吗seo是东莞企业网站排seo
  • 做百度手机网站关键词排名哪个通讯公司的网络好
  • 网站后期维修问题qq网站建设
  • 做网站不会框架网站开发逻辑图
  • 东莞网站制作个性化宜都网站建设
  • 空壳网站查询网络服务提供者不履行法律、行政法规
  • 付费阅读网站代码做网站需要什么软件
  • 泗阳网站设计外贸网站特点
  • 国外logo设计网站推荐网页浏览器证书失效怎么修复