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缓存初探

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql卸载步骤_系统应用怎么卸载步骤

    mysql卸载步骤_系统应用怎么卸载步骤重装卸载了一下午,很多方法都尝试了,最后终于找到一个彻底删干净的方法:1.很多大佬都提到的cmd搜索regedit注册表,打开后找到下面三个目录并删除(要是没有不用管)HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQLHKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQLHKEY_LOCAL_MACHIN

  • java jersey,java Jersey

    java jersey,java Jersey场景:用Jersey构建RESTful服务3-JAVA对象转成JSON输出用Jersey构建RESTful服务3–JAVA对象转成JSON输出一、总体说明XML和JSON是最为常用的数据交换格式。本例子演示如何将java对象,转成JSON输出。二、流程1.在上文项目中,在“com.waylau.rest.resources.UserResource“中增加代码,代码如下:@GET@Path(…

  • Java三大版本「建议收藏」

    Java三大版本「建议收藏」Java三大版本​ Java三大版本代表着Java技术的三个应用领域:JavaSE、JavaME、JavaEE。​ Java以前很长一段时间被称为Java2,所以现在很多人习惯称为J2SE、J2ME、J2EE,它们表示的含义是一样的。JavaSE​ JavaSE,它是JAVA的标准版,是整个JAVA的基础和核心,也是JavaEE和JavaME技术的基础,主要用于开发桌面应用程序。JavaME​ JavaME,它叫做Java的微缩版,主要应用于嵌入式开发,比如手机程序的开发。JavaEE

  • 什么是java虚拟机(Java Virtual Machine)?

    什么是java虚拟机(Java Virtual Machine)?马上就要找实习了,趁着现在有时间,做个小小的面试总结,部分原创,大部分是在网上搜集。1什么是java虚拟机(JavaVirtualMachine)?java虚拟机是一种抽象化虚拟的计算机,java虚拟机有完善的一套硬体架构,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。java虚拟机屏蔽了当前使用的操作系统平台的相关信息,使得java程序只需生成相关的java字节…

  • 自学cad 零基础_零基础自学吉他的步骤

    自学cad 零基础_零基础自学吉他的步骤学习CAD制图其实不难,主要还是看个人,下面是学习啦小编带来关于cad的零基础自学教程的内容,希望可以让大家有所收获! CAD的零基础自学教程  自学cad制图第1章基础  1.设备绘图界限一般来说,如果用户不作任何设置,系统对作图范围没有限制,可以将绘图区看作是一幅无穷大的图纸。格式-图形界线命令:limits出现四个选项:开、关、指定左下角点、指定右下角点。高手课专注帮你学习。  2.设备绘图单位格式-单位命令:ddunits长度、角度、插入比例、方向…

  • Mysql修改字段名、修改字段类型

    Mysql修改字段名、修改字段类型mysql修改字段类型: –能修改字段类型、类型长度、默认值、注释–对某字段进行修改ALTERTABLE表名MODIFYCOLUMN字段名新数据类型新类型长度新默认值新注释;–COLUMN可以省略altertabletable1modifycolumncolumn1decimal(10,1)DEFAULTNULLCOMMENT’…

发表回复

您的电子邮箱地址不会被公开。

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