激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot緩存的使用實踐

springboot緩存的使用實踐

2021-05-07 11:06luckyxl029 Java教程

這篇文章主要介紹了springboot緩存的使用,spring針對各種緩存實現(xiàn),抽象出了CacheManager接口,用戶使用該接口處理緩存,而無需關心底層實現(xiàn),感興趣的小伙伴們可以參考一下

spring針對各種緩存實現(xiàn),抽象出了cachemanager接口,用戶使用該接口處理緩存,而無需關心底層實現(xiàn)。并且也可以方便的更改緩存的具體實現(xiàn),而不用修改業(yè)務代碼。下面對于在springboot中使用緩存做一簡單介紹:

1、添加依賴

?
1
2
3
4
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-cache</artifactid>
</dependency>

2、在配置類里開啟緩存,如下圖所示:

springboot緩存的使用實踐

3、在需要使用緩存的方法上加上注解,如下:

?
1
2
3
4
5
6
7
8
@override
  //@cacheput 該注解會將方法的返回值緩存起來,其中緩存名字是 people,數(shù)據(jù)的key是person的id
  @cacheput(value = "people", key = "#person.id")
  public person save(person person) {
    person p = personrepository.save(person);
    system.out.println("為id、key為:"+p.getid()+"數(shù)據(jù)做了緩存");
    return p;
  }
?
1
2
3
4
5
6
7
@override
  //@cacheevict 該注解會刪除people緩存中key為id 的數(shù)據(jù)
  @cacheevict(value = "people", key = "#id")
  public void remove(long id) {
    system.out.println("刪除了id、key為"+id+"的數(shù)據(jù)緩存");
    //這里不做實際刪除操作
  }
?
1
2
3
4
5
6
7
8
9
@override
  //@cacheable 該注解會在方法執(zhí)行時,判斷緩存people中key為#person.id
的緩存是否存在,如果存在,則直接返回緩存中的數(shù)據(jù)。如果不存在,則會查數(shù)據(jù)庫,然后將返回結果緩存起來。
  @cacheable(value = "people", key = "#person.id")
  public person findone(person person) {
    person p = personrepository.findone(person.getid());
    system.out.println("為id、key為:"+p.getid()+"數(shù)據(jù)做了緩存");
    return p;
  }

以上幾部就完成了緩存,但是現(xiàn)在的緩存是默認的基于內(nèi)存的,沒有實現(xiàn)持久化。下面以redis作為緩存的具體實現(xiàn),如下:

4、添加依賴

?
1
2
3
4
<dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-redis</artifactid>
</dependency>

5、在配置文件里添加redis配置

?
1
2
redis.hostname=localhost
redis.port=6379

6、在spring容器中配置redis

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@configuration
public class redisconfig extends cachingconfigurersupport{
  private static final logger logger = loggerfactory.getlogger(redisconfig.class);
 
  @autowired
  private environment env;
 
  @bean
  public jedisconnectionfactory redisconnectionfactory() {
    jedisconnectionfactory redisconnectionfactory = new jedisconnectionfactory();
    redisconnectionfactory.sethostname(env.getproperty("redis.hostname"));
    redisconnectionfactory.setport(integer.parseint(env.getproperty("redis.port")));
    return redisconnectionfactory;
  }
 
  @bean
  public redistemplate<string, string> redistemplate(redisconnectionfactory cf) {
    redistemplate<string, string> redistemplate = new redistemplate<>();
    redistemplate.setconnectionfactory(cf);
    return redistemplate;
  }
 
  @bean
  public cachemanager cachemanager(redistemplate<?, ?> redistemplate) {
    rediscachemanager cachemanager = new rediscachemanager(redistemplate);
    cachemanager.setdefaultexpiration(600);
    return cachemanager;
  }
   
}

ok,完成了,其他什么都不用改,是不是很方便?

另外,要緩存的類必須序列化。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/luckyxl029/article/details/79420334

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久国产精品 | 成片免费大全 | 国产乱乱视频 | 欧美黄 片免费观看 | 精品一二三区视频 | jizzjizzjizz少妇| 亚洲国产视频在线 | 毛片在线免费观看完整版 | 久久久大片 | 色诱亚洲精品久久久久久 | 亚洲一区二区免费 | 成人欧美日韩一区二区三区 | 日本一级黄色毛片 | 国产视频在线免费观看 | 国产成人自拍视频在线观看 | 久久综合艹| 91中文字幕在线观看 | 国产亚洲精品视频中文字幕 | 欧美日韩中文字幕在线视频 | 主人在调教室性调教女仆游戏 | 宅男噜噜噜66国产在线观看 | 久草在线资源视频 | 一级大片久久 | 精品一区二区三区在线观看视频 | 视频一区二区久久 | 欧美精品激情在线 | 最新午夜综合福利视频 | 7777欧美 | 久久精品99国产国产精 | 中文字幕精品亚洲 | 黄色影院一级片 | 色人阁在线视频 | av中文字幕免费在线观看 | 欧美成人毛片 | 欧美性生活视频免费 | 欧美一级黄 | 亚洲一区久久久 | 国产一级做a爰片在线看 | 最新福利在线 | 宅男噜噜噜66国产免费观看 | 男女无遮挡羞羞视频 |