在Spring Boot项目中加载缓存通常涉及到使用Spring的缓存抽象和特定的缓存实现,如Redis、EhCache、Hazelcast等。以下是一个使用Spring Cache和EhCache作为缓存实现的例子:
- 添加依赖到你的
pom.xml
:
<dependencies>
<!-- Spring Boot Cache Abstraction -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- EhCache implementation -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
</dependencies>
- 配置EhCache缓存:
在src/main/resources
目录下创建ehcache.xml
配置文件:
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxElementsOnDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</defaultCache>
</ehcache>
- 启用缓存并配置EhCache作为缓存管理器:
在你的application.properties
或application.yml
配置文件中添加:
# application.properties
spring.cache.type=ehcache
- 在Spring Boot启动类上启用缓存:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
@EnableCaching
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
}
- 使用缓存:
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@Service
public class YourService {
@Cacheable(value = "yourCacheName", key = "#key")
public String getData(String key) {
// 实际的数据加载逻辑
return "data";
}
}
在上述例子中,@EnableCaching
注解启用了缓存,@Cacheable
注解标记了getData
方法,该方法的返回值将被缓存。缓存的名字是yourCacheName
,使用方法参数key
作为缓存键。
当Spring Boot应用启动时,EhCache将被初始化,并根据配置加载到内存中。当getData
方法被@Cacheable
注解,并且相同的key
值被传入时,数据将从缓存中返回,而不是执行实际的方法逻辑,从而提高了应用的性能。