Spring boot caching example
2020-12-13 05:39
标签:alt color run ati for art end dom test spring cache API 1.1 In-memory caching 如 redis。 1.2 database caching 如 hibernate cache。 initialize your project https://start.spring.io/ Student.java StudentService.java StudentController.java Note: SpringCacheApplication.java 2.3 Demo test 通过变换id, Spring boot caching example 标签:alt color run ati for art end dom test 原文地址:https://www.cnblogs.com/chenqr/p/11144882.html1. Types of cache
2. Spring boot cache annotations
2.1 Create HTTP GET REST API
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方法加上
}
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");
}
}
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);
}
}
@Cacheable("student")
,用于cache学生信息。2.2 Enable Spring managed Caching
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);
}
}
http://localhost:8080/student/1
http://localhost:8080/student/2
感受一下缓存的效果。