SpringBoot中的Cache快取 二

2021-08-20 18:21:18 字數 3433 閱讀 1729

1.依賴包

net.sf.ehcache

ehcache

org.springframework

spring-context-support

4.2.5.release

2.啟動main方法新增快取註解

@enablecaching
3.實體類實現序列化介面

@getter

@setter

@noargsconstructor

@allargsconstructor

@tostring

public class user implements serializable

//@select("select * from user where id = #")

user findbyname(@param("id") int id);

@insert("insert into user(name) values(#)")

int insert(@param("name") string name);

@update("update user set name =# where id=#")

int update(@param("id") int id,@param("name") string name);

@delete("delete from user where id =#")

int delete(@param("id") int id);

5.service:

@service

public class userservice

@cacheput(value = "user",key = "#p0.id")

public user insert3(user user)

//cacheput快取新增的或者更新的資料到快取,其中快取名稱為boy

//資料的key是boy 的id

@cacheput(value = "user",key = "#p0")

public user update(int id, string name)

@cacheevict(value = "user",key = "#p0")

public user delete(int id)

6.controller:

@responsebody

public void select(@pathvariable(value = "id") int id)

@responsebody

public void insert3()

@responsebody

public void update(@pathvariable(value = "id") int id,@pathvariable(value = "name") string name)

@responsebody

public void delete(@pathvariable(value = "id") int id)

配置configuration:

package com.sa.ch_5_2_3.common;

import org.springframework.cache.cachemanager;

import org.springframework.cache.annotation.cachingconfigurer;

import org.springframework.cache.annotation.enablecaching;

import org.springframework.cache.ehcache.ehcachecachemanager;

import org.springframework.cache.interceptor.cacheerrorhandler;

import org.springframework.cache.interceptor.cacheresolver;

import org.springframework.cache.interceptor.keygenerator;

import org.springframework.cache.interceptor.******keygenerator;

import org.springframework.context.annotation.bean;

import org.springframework.context.annotation.configuration;

import net.sf.ehcache.config.cacheconfiguration;

/** * created by 123 on 2018-06-14

*/@configuration

@enablecaching

public class cachingconfiguration implements cachingconfigurer

@bean

@override

public cachemanager cachemanager()

@bean

@override

public keygenerator keygenerator()

@override

public cacheresolver cacheresolver()

@override

public cacheerrorhandler errorhandler()

}

測試:

http://localhost:8082/insert3
插入成功後返回主鍵id.

查詢:http://localhost:8082/select/33

報錯,

因為設定的存活週期為一秒,而且sql的查詢語句被注釋掉了.

如果修改configuration的配置時間,為600秒:

//timetoidleseconds: 物件空閒時間,指物件在多長時間沒有被訪問就會失效。

// 只對eternal為false的有效。預設值0,表示一直可以訪問。

cacheconfiguration.settimetoidleseconds(600);

//timetoliveseconds: 物件存活時間,指物件從建立到失效所需要的時間。

// 只對eternal為false的有效。預設值0,表示一直可以訪問。

cacheconfiguration.settimetoliveseconds(600);

則執行查詢

http://localhost:8082/select/33,是可以在快取中查詢到內容。

linux的top下buffer與cache的區別

buffer 緩衝區,乙個用於儲存速度不同步的裝置或優先順序不同的裝置之間傳輸資料 的區域。通過緩衝區,可以使程序之間的相互等待變少,從而使從速度慢的裝置讀入資料 時,速度快的裝置的操作程序不發生間斷。cache 當你讀寫檔案的時候,linux核心為了提高讀寫效能與速度,會將檔案在記憶體中進行快取,...

SpringBoot中的註解

在spring boot中幾乎可以完全棄用xml配置檔案,本文的主題是分析常用的註解。spring最開始是為了解決ejb等大型企業框架對應用程式的侵入性,因此大量依靠配置檔案來 非侵入式 得給pojo增加功能,然而,從spring 3.x開始,spring被外界最為詬病的一點就是配置繁多,號稱 配置...

springboot中的註解

configuration和 bean 這兩個註解一般都是搭配使用,在springboot中,官方給我們配置了很多的啟動器,而我們配置的時候往往在配置檔案properties或者yml中配置相對應的引數即可,但是官方總有沒有自動化的引數,這時候我們就需要了這個註解。例如當我們ssm shiro的時候...