SpringBoot——Cache缓存初探

SpringBoot——Cache缓存初探SpringBoot——Cache缓存初探

大家好,又见面了,我是你们的朋友全栈君。

@Cacheable:查询数据,如果缓存中有,直接从缓存中取,如果没有执行方法中代码获取结果,并存入缓存中。 
@CachePut:修改缓存的值 
@EnableCaching:项目启动时扫描缓存注解 

话不多说,直接开始上代码。

1.创建缓存服务

下面service中写了两个方法,一个是查询缓存,一个是修改缓存

 package com.youyou.address.service;

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

import java.util.ArrayList;
import java.util.List;

/**
 * 这是一个测试缓存service
 *
 * @author 刘朋
 * <br/>date 2018-10-24
 */

@Service
public class CacheService {

    /**
     * 查询缓存,缓存的名字是testList,用key来标识
     * @param key
     * @return
     */
    @Cacheable(cacheNames = "testList" , key = "#key")
    public List<String> testCache(String key){
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add(key);
        return list;
    }

    /**
     * 修改缓存,缓存的名字是testList,用key来标识
     * @param key
     * @return
     */
    @CachePut(cacheNames = "testList" , key = "#key")
    public List<String> testPutCache(String key){
        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add(key);
        return list;
    }
}

2.添加缓存扫描

在启动类上添加缓存扫描注解

 package com.youyou;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@MapperScan("com.youyou.*")//将项目中对应的mapper类的路径加进来就可以了
@EnableCaching  //如果想启动缓存,需要加此注解
public class WorldMainApplication {

    public static void main(String[] args) {
        //启动项目
        SpringApplication.run(WorldMainApplication.class, args);
    }
}

到此为止缓存服务已经创建完成。

来让我们测试一下!

 package com.youyou.address;

import com.youyou.address.service.CacheService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * //TODO 添加类/接口功能描述
 *
 * @author 刘朋
 * <br/>date 2018-09-06
 */

@Api(description = "第一个接口")
@RestController
@RequestMapping("/hello")
public class HelloWorldController {

    @Autowired
    private CacheService cacheService ;

    @ApiOperation(value = "测试缓存" )
    @GetMapping("/testCache")
    public String testCache(){
       //第一次中缓存中查询
        List<String> test = cacheService.testCache("test");
        System.out.println(test);

        //修改缓存中的值
        List<String> test2 = cacheService.testPutCache("test");
        System.out.println(test2);

        //再次从缓存中查询
        List<String> test3 = cacheService.testCache("test");
        System.out.println(test3);
        return "";
    }

}

访问接口查看打印结果如下:

SpringBoot——Cache缓存初探

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106466.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html 提交form表单提交数据格式,form表单提交数据

    html 提交form表单提交数据格式,form表单提交数据form 表单提交的几种方法 HTML 表单提交的几种方式方式一 通过 submit 按钮提交方式二 通过一般按钮 button 提交 1 3javascript gt functionsubm varform1 document getElementBy form1 form1 action bjpowernode html form1 submit 方式三 通过超链接提交 2 3 通

    2025年11月7日
    4
  • IDEA开发工具使用 git 创建项目、拉取分支、合并分支「建议收藏」

    IDEA开发工具使用 git 创建项目、拉取分支、合并分支「建议收藏」工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七:小张获取小袁提交的分支场景八:…

    2022年6月18日
    104
  • 匹配滤波器及matlab仿真

    匹配滤波器及matlab仿真随机信号处理笔记:匹配滤波器——南京理工大学顾红老师的《随机信号处理》浅析文章目录随机信号处理笔记:匹配滤波器1.线性滤波器输出端信噪比2.匹配滤波器的传输函数和冲激响应2.1复函数的施瓦兹不等式2.2传输函数求解3.匹配滤波器的性质3.1匹配滤波器的最大峰值信噪比3.2匹配滤波器的幅频特性相频特性3.3匹配滤波器的物理可实现性3.4输出信号和噪声3.5匹配滤波器的时延适应性3.6匹配滤波器的频移不适应性3.7输出信号频谱与输入信号频谱关系4.匹配滤波器的信号处理SNR增益4.1matlab仿真匹配

    2022年6月1日
    51
  • JDK安装、java环境配置

    JDK安装、java环境配置

    2021年10月23日
    38
  • java异或运算_异或校验

    java异或运算_异或校验异或运算常用来做数据的简单校验。Java的实现:(将字节数组两两异或,返回最后异或值)publicstaticbytegetXor(byte[]datas){ bytetemp=datas[0]; for(inti=1;i

    2022年10月5日
    4
  • [Java基础]StringUtils.join()方法与String.join()方法的使用

    [Java基础]StringUtils.join()方法与String.join()方法的使用StringUtils.join()和String.join()用途:将数组或集合以某拼接符拼接到一起形成新的字符串。1.StringUtils.join()方法:(1)使用前需先引入common-lang3的jar包,可去官网下载:apache官网下载页面(2)方法如下图:(3)基本上此方法需传入2个参数,第一个参数是传入一个任意类型数组或集合,第二个参数是拼接符。…

    2022年6月9日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号