gpt4 book ai didi

spring - 如何使用Java Spring启动缓存

转载 作者:行者123 更新时间:2023-12-03 08:40:49 26 4
gpt4 key购买 nike

我有java spring boot应用程序。我想使用缓存来存储经常读取的数据。为此,我在 jar 中包含了以下依赖项

    <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>

我还使用了@EnableCaching注释

@EnableCaching 
public class SpringBootConfig {
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootConfig.class, args);
}
}

使用@Cacheable注释和返回我想要缓存的数据的函数

@Cacheable(value = "country",key = "'countryCache'+#countryCode")
private Country getCountry(String countryCode) {
return new Country(countryCode);
}

但我仍然无法缓存数据。我有什么遗漏的吗?

最佳答案

注解@Cacheable仅适用于允许拦截器的公开暴露方法。但是,如果需要,您可以获取“CacheManager”服务并在代码中使用它来在私有(private)方法中内部处理缓存。但只有解决一些“特殊”问题时,通常的方法是对公共(public)方法进行注释。

此外,如果您只使用启动器,那么您只能使用 Spring 的基本且糟糕的实现,即一个简单的内存缓存。

考虑您的应用程序将如何工作(单个应用程序、分布式应用程序、缓存的短/长数据量……)以及添加任何受支持的缓存管理器(如 ehCache、Hazelcast、Caffeine)的依赖项的内存消耗,...满足您的要求并提高您的缓存性能。

关于spring - 如何使用Java Spring启动缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62828470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com