Spring boot caching example

Posted chenqr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring boot caching example相关的知识,希望对你有一定的参考价值。

spring cache API

1. Types of cache

1.1 In-memory caching 如 redis。

1.2 database caching 如 hibernate cache。

2. Spring boot cache annotations

initialize your project https://start.spring.io/

技术图片

2.1 Create HTTP GET REST API

Student.java

 

package com.example.springcache.domain;
 
public class Student 
 
    String id;
    String name;
    String clz;
 
    public Student(String id, String name, String clz) 
        super();
        this.id = id;
        this.name = name;
        this.clz = clz;
    
 
    //Setters and getters //注意把set和get方法加上

 StudentService.java

package com.example.springcache.service;
 
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.example.springcache.domain.Student;
 
@Service
public class StudentService

    @Cacheable("student")
    public Student getStudentByID(String id)
    
        try
        
            System.out.println("Going to sleep for 5 Secs.. to simulate backend call.");
            Thread.sleep(1000*5);
        
        catch (InterruptedException e)
        
            e.printStackTrace();
        
 
        return new Student(id,"Sajal" ,"V");
    

 StudentController.java

package com.example.springcache.controller;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import com.example.springcache.domain.Student;
import com.example.springcache.service.StudentService;
 
@RestController
public class StudentController

 
    @Autowired
    StudentService studentService;
 
    @GetMapping("/student/id")
    public Student findStudentById(@PathVariable String id)
    
        System.out.println("Searching by ID  : " + id);
 
        return studentService.getStudentByID(id);
    

 Note:

  • service层方法用@Cacheable("student"),用于cache学生信息。

2.2 Enable Spring managed Caching

SpringCacheApplication.java

package com.example.springcache;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
 
@SpringBootApplication
@EnableCaching
public class SpringCacheApplication 
 
    public static void main(String[] args) 
        SpringApplication.run(SpringCacheApplication.class, args);
    

 2.3 Demo test

http://localhost:8080/student/1

 通过变换id,http://localhost:8080/student/2 感受一下缓存的效果。

以上是关于Spring boot caching example的主要内容,如果未能解决你的问题,请参考以下文章

史上最全的Spring Boot Cache使用与整合

最全面的Spring-Boot-Cache使用与整合

史上最全面的Spring Boot Cache使用与整合

史上最全面的Spring-Boot-Cache使用与整合

史上最全面的Spring-Boot-Cache使用与整合

Spring boot caching example