javascript
ehcache怎么删除缓存_解释SpringBoot之Ehcache 2.x缓存
介紹
這里介紹Ehcache 2.X 緩存
添加基本的web項目
添加Ehcache 依賴
xml version="1.0" encoding="UTF-8"?>
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.3.1.RELEASE
com.example
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-cache
2.3.1.RELEASE
net.sf.ehcache
ehcache
2.10.6
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
org.springframework.boot
spring-boot-maven-plugin
添加配置文件
添加ehcache 配置緩存文件
path="java.io.tmpdir/shiro-spring-sample"/>
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
/>
name="book_cache"
maxElementsInMemory="10000"
eternal="true"
overflowToDisk="true"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="600"/>
注解上開啟緩存
在啟動類上添加相關(guān)的注解
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
@EnableCaching
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
使用緩存
創(chuàng)建實體類和BookService
創(chuàng)建實體類
package com.example.demo;
import java.io.Serializable;
public class Book implements Serializable {
private Integer id;
private String name;
private String author;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
添加相關(guān)的service
package com.example.demo;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Repository;
@Repository
// 使用緩存的名稱
@CacheConfig(cacheNames = "book_cache")
public class BookDao {
// 對該方法進行緩存
@Cacheable
public Book getBookById(Integer id){
System.out.println("調(diào)用Service方法");
Book book = new Book();
book.setAuthor("ming");
book.setId(id);
book.setName("ming");
return book;
}
@CachePut(key = "#book.id")
// 用在更新方法上,數(shù)據(jù)庫數(shù)據(jù)更新,緩存數(shù)據(jù)也要更新,方法的返回值自動更新在已經(jīng)保存的key上
public Book updateBookById(Book book){
System.out.println("更新ById");
book.setName("ming2");
return book;
}
@CacheEvict(key = "#id")
// 用在刪除方法上,數(shù)據(jù)刪除以后,其方法也會刪除
public void deleteBookById(Integer id){
System.out.println("id刪除");
}
}
創(chuàng)建測試類
創(chuàng)建測試類,對Service方法進行測試
package com.example.demo;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import static org.junit.jupiter.api.Assertions.*;
@ExtendWith(SpringExtension.class) //導(dǎo)入spring測試框架[2]
@SpringBootTest
//提供spring依賴注入
class BookDaoTest {
@Autowired
private BookDao bookDao;
@Test
public void test(){
bookDao.getBookById(1);
bookDao.getBookById(1);
bookDao.deleteBookById(1);
Book book = bookDao.getBookById(1);
System.out.println(book);
book.setName("mingming");
book.setAuthor("mingming");
book.setId(1);
bookDao.updateBookById(book);
Book book1 = bookDao.getBookById(1);
System.out.println(book1);
}
}
查看結(jié)果
小明菜市場
總結(jié)
以上是生活随笔為你收集整理的ehcache怎么删除缓存_解释SpringBoot之Ehcache 2.x缓存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 弘康寿险为什么便宜
- 下一篇: centos ipv6 网卡_CentO