发布时间:2023-09-12 16:30
我们在开发后台项目的时候,经常需要一些借助缓存缓存减少数据库的压力,但又不想引入redis组件,仅仅想使用本地缓存处理经常调用的方法,这里我们使用spring注解@Cacheable 来替代我们常用的Google cache,注解的方式使用起来要更加的便捷。
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-cacheartifactId>
<version>2.3.5.RELEASEversion>
dependency>
<dependency>
<groupId>com.github.ben-manes.caffeinegroupId>
<artifactId>caffeineartifactId>
<version>2.3.5version>
dependency>
启动类添加@EnableScheduling 注解,开启缓存注解
@Slf4j
@EnableScheduling // 开启基于注解的缓存
@SpringBootApplication
@MapperScan("io.xx.xx.mapper")
public class MainApplication {
public static void main(String[] args) {
Environment env = new SpringApplication(MainApplication.class).run(args).getEnvironment();
}
}
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.caffeine.CaffeineCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;
/**
* 缓存配置
* 给定方法进行缓存 @Cacheable("xxxx")
*/
@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public CacheManager cacheManager() {
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
Caffeine<Object, Object> caffeine = Caffeine.newBuilder()
//配置缓存失效策略
.expireAfterWrite(10, TimeUnit.MINUTES)
.maximumSize(5000);
cacheManager.setCaffeine(caffeine);
return cacheManager;
}
}
在需要使用的方法或类上直接使用注解@Cacheable(“xxx”) 或者 @Cacheable(value=“xxx”)
CTF中Web题目的各种基础的思路-----入门篇十分的详细
在Jetson Nano上学习ROS的记录(版本Ubuntu18.04,课程来源赵虚左老师的《ROS理论与实践》)第十章-第二节 TF坐标变换实操
苹果icloud登录_如何在Windows电脑上使用苹果iCloud服务?
围绕Vue 3 Composition API构建一个应用程序,包含一些最佳实践!
取代传统 Java UI 框架,JetBrains Kotlin 声明式 UI 框架 Compose Multiplatform 1.0 正式上线
go database/sql/driver(驱动接口) 与mysql 实现驱动( go-sql-driver/mysql库)