春のブートキャッシュ例

春のキャッシュAPI

キャッシュの1種類

1.1インメモリキャッシュ如のRedisの。

1.2データベースのキャッシュ如の休止キャッシュ。

2.春のブートキャッシュ注釈

あなたのプロジェクトが初期化https://start.spring.io/

2.1作成HTTP GET REST API

Student.java

 

パッケージcom.example.springcache.domain。
 
パブリッククラス学生{ 
 
    文字列ID; 
    文字列の名前。
    文字列のCLZ。
 
    公共学生(文字列ID、文字列名、文字列CLZ){ 
        スーパー()。
        this.id = ID。
        this.name =名前; 
        this.clz = CLZ。
    } 
 
    //セッターとゲッター//注意把セット和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 感受一下缓存的效果。

おすすめ

転載: www.cnblogs.com/chenqr/p/11144882.html