Spring-bootキャッシュテスト
10003 ワード
需要説明
頻繁にアクセスするデータについては、データの生成に要するコストを削減するために、頻繁にアクセスするデータをキャッシュする必要がある場合があります.データキャッシュの場合、EHCache、JCache、ShiftOneなど、多くのオープンソースパケットが実現できます.以前キャッシュに関することをしたことがありますが、いくつかのオープンソースキャッシュツールを利用して、自分で単一のクラスを書いてタイミングキャッシュ機能を実現しています.今回のテストでは、spring-bootに統合されたキャッシュツールを使用して、注釈方式でデータキャッシュを実現します.テストの結果、spring-bootはキャッシュのサポートが非常に完備しており、サポートされているキャッシュ技術も多いことがわかりました.使いやすいです.
インプリメンテーション
今回のテストではspring-bootに統合されたグーグルのキャッシュ技術:guavaを使用しました.
使用する場合はpom依存をいくつか導入し、起動クラスに@EnableCaching注記を追加し、キャッシュが必要なメソッドに@Cacheable("books")注記を追加するだけです.キャッシュ時間とキャッシュサイズについては、アプリケーションで直接使用することができる.ymlで構成します.
maven依存
コード#コード#
コントロール層
サービス層
エンティティBookでは、コンストラクタを書き換え、新しいオブジェクトを作成するたびに印刷して出力し、テストを容易にします.
プロファイル
プロファイルについてはあまり言わないのは明らかです.Cache-names:booksはメソッドで使用する名前と一致します.
テストとまとめ
1、私たちはcontrollerでこの要求を呼び出して、最初の呼び出しから、前の10 sの内容は、一度だけ「本を作成する」と出力して、10 s以降、再び呼び出すと、再び「本を作成する」が現れます.
2、プロファイルにキャッシュタイムを直接配置できるので、個人的には自分で書くより便利だと思います.
3、関連コードのダウンロードアドレスをテストする
頻繁にアクセスするデータについては、データの生成に要するコストを削減するために、頻繁にアクセスするデータをキャッシュする必要がある場合があります.データキャッシュの場合、EHCache、JCache、ShiftOneなど、多くのオープンソースパケットが実現できます.以前キャッシュに関することをしたことがありますが、いくつかのオープンソースキャッシュツールを利用して、自分で単一のクラスを書いてタイミングキャッシュ機能を実現しています.今回のテストでは、spring-bootに統合されたキャッシュツールを使用して、注釈方式でデータキャッシュを実現します.テストの結果、spring-bootはキャッシュのサポートが非常に完備しており、サポートされているキャッシュ技術も多いことがわかりました.使いやすいです.
今回のテストではspring-bootに統合されたグーグルのキャッシュ技術:guavaを使用しました.
使用する場合はpom依存をいくつか導入し、起動クラスに@EnableCaching注記を追加し、キャッシュが必要なメソッドに@Cacheable("books")注記を追加するだけです.キャッシュ時間とキャッシュサイズについては、アプリケーションで直接使用することができる.ymlで構成します.
maven依存
コード#コード#
サービス層
エンティティBookでは、コンストラクタを書き換え、新しいオブジェクトを作成するたびに印刷して出力し、テストを容易にします.
プロファイル
プロファイルについてはあまり言わないのは明らかです.Cache-names:booksはメソッドで使用する名前と一致します.
1、私たちはcontrollerでこの要求を呼び出して、最初の呼び出しから、前の10 sの内容は、一度だけ「本を作成する」と出力して、10 s以降、再び呼び出すと、再び「本を作成する」が現れます.
2、プロファイルにキャッシュタイムを直接配置できるので、個人的には自分で書くより便利だと思います.
頻繁にアクセスするデータについては、データの生成に要するコストを削減するために、頻繁にアクセスするデータをキャッシュする必要がある場合があります.データキャッシュの場合、EHCache、JCache、ShiftOneなど、多くのオープンソースパケットが実現できます.以前キャッシュに関することをしたことがありますが、いくつかのオープンソースキャッシュツールを利用して、自分で単一のクラスを書いてタイミングキャッシュ機能を実現しています.今回のテストでは、spring-bootに統合されたキャッシュツールを使用して、注釈方式でデータキャッシュを実現します.テストの結果、spring-bootはキャッシュのサポートが非常に完備しており、サポートされているキャッシュ技術も多いことがわかりました.使いやすいです.
インプリメンテーション
今回のテストではspring-bootに統合されたグーグルのキャッシュ技術:guavaを使用しました.
使用する場合はpom依存をいくつか導入し、起動クラスに@EnableCaching注記を追加し、キャッシュが必要なメソッドに@Cacheable("books")注記を追加するだけです.キャッシュ時間とキャッシュサイズについては、アプリケーションで直接使用することができる.ymlで構成します.
maven依存
org.springframework.boot
spring-boot-starter-cache
com.google.guava
guava
19.0
コード#コード#
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
コントロール層
@RequestMapping(value = "/cache/test",method = RequestMethod.GET)
@ApiOperation(value = " ",notes = "")
public Book getBook(@RequestParam()String bookName){
return bookCache.getBook(bookName);
}
サービス層
@Service
public class BookCache {
public static Integer index = 0;
@Cacheable("books")
public Book getBook(String bookName){
index = index + 1;
Book book = new Book(bookName,index);
return book;
}
}
エンティティBookでは、コンストラクタを書き換え、新しいオブジェクトを作成するたびに印刷して出力し、テストを容易にします.
public class Book {
public Book(String bookName,Integer index){
System.out.println(" ");
this.bookName = bookName;
this.createDate = new Date();
this.index = index;
}
private String bookName;
private Date createDate;
private Integer index;
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}
プロファイル
spring:
profiles:
active: dev
jackson:
serialization-inclusion: NON_NULL
date-format: yyyy-MM-dd'T'HH:mm:ss
time-zone: Asia/Shanghai
cache:
guava:
#
cache-names: books
# 500 , 10s
spec: maximumSize=500,expireAfterWrite=5s
プロファイルについてはあまり言わないのは明らかです.Cache-names:booksはメソッドで使用する名前と一致します.
テストとまとめ
1、私たちはcontrollerでこの要求を呼び出して、最初の呼び出しから、前の10 sの内容は、一度だけ「本を作成する」と出力して、10 s以降、再び呼び出すと、再び「本を作成する」が現れます.
2、プロファイルにキャッシュタイムを直接配置できるので、個人的には自分で書くより便利だと思います.
3、関連コードのダウンロードアドレスをテストする
Spring-bootキャッシュテスト
需要説明
頻繁にアクセスするデータについては、データの生成に要するコストを削減するために、頻繁にアクセスするデータをキャッシュする必要がある場合があります.データキャッシュの場合、EHCache、JCache、ShiftOneなど、多くのオープンソースパケットが実現できます.以前キャッシュに関することをしたことがありますが、いくつかのオープンソースキャッシュツールを利用して、自分で単一のクラスを書いてタイミングキャッシュ機能を実現しています.今回のテストでは、spring-bootに統合されたキャッシュツールを使用して、注釈方式でデータキャッシュを実現します.テストの結果、spring-bootはキャッシュのサポートが非常に完備しており、サポートされているキャッシュ技術も多いことがわかりました.使いやすいです.
インプリメンテーション
今回のテストではspring-bootに統合されたグーグルのキャッシュ技術:guavaを使用しました.
使用する場合はpom依存をいくつか導入し、起動クラスに@EnableCaching注記を追加し、キャッシュが必要なメソッドに@Cacheable("books")注記を追加するだけです.キャッシュ時間とキャッシュサイズについては、アプリケーションで直接使用することができる.ymlで構成します.
maven依存
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-cacheartifactId>
dependency>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>19.0version>
dependency>
コード#コード#
@SpringBootApplication
@EnableCaching
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
@RequestMapping(value = "/cache/test",method = RequestMethod.GET)
@ApiOperation(value = " ",notes = "")
public Book getBook(@RequestParam()String bookName){
return bookCache.getBook(bookName);
}
サービス層
@Service
public class BookCache {
public static Integer index = 0;
@Cacheable("books")
public Book getBook(String bookName){
index = index + 1;
Book book = new Book(bookName,index);
return book;
}
}
エンティティBookでは、コンストラクタを書き換え、新しいオブジェクトを作成するたびに印刷して出力し、テストを容易にします.
public class Book {
public Book(String bookName,Integer index){
System.out.println(" ");
this.bookName = bookName;
this.createDate = new Date();
this.index = index;
}
private String bookName;
private Date createDate;
private Integer index;
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}
プロファイル
spring:
profiles:
active: dev
jackson:
serialization-inclusion: NON_NULL
date-format: yyyy-MM-dd'T'HH:mm:ss
time-zone: Asia/Shanghai
cache:
guava:
#
cache-names: books
# 500 , 10s
spec: maximumSize=500,expireAfterWrite=5s
プロファイルについてはあまり言わないのは明らかです.Cache-names:booksはメソッドで使用する名前と一致します.
テストとまとめ
1、私たちはcontrollerでこの要求を呼び出して、最初の呼び出しから、前の10 sの内容は、一度だけ「本を作成する」と出力して、10 s以降、再び呼び出すと、再び「本を作成する」が現れます.
2、プロファイルにキャッシュタイムを直接配置できるので、個人的には自分で書くより便利だと思います.