Spring Boot中緩存圖片的方法有多種,以下是一些常見的方法:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new CacheInterceptor());
}
}
public class CacheInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 設置Cache-Control和Expires頭信息
response.setHeader("Cache-Control", "max-age=3600");
response.setHeader("Expires", "Sun, 01 Jan 2023 00:00:00 GMT");
return true;
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
spring:
cache:
type: ehcache
然后在需要緩存圖片的方法上添加@Cacheable注解,并指定緩存的名稱和緩存的key。
@Cacheable(cacheNames = "imageCache", key = "#url")
public byte[] getImage(String url) {
// 從網絡或其他地方獲取圖片數據
return imageData;
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring:
redis:
host: localhost
port: 6379
然后在需要緩存圖片的方法上添加@Cacheable注解,并指定緩存的名稱和緩存的key。
@Cacheable(cacheNames = "imageCache", key = "#url")
public byte[] getImage(String url) {
// 從網絡或其他地方獲取圖片數據
return imageData;
}
這些方法中,使用Http緩存和使用Ehcache/Redis緩存的方式更適合大規模的應用,可以充分利用緩存來提高圖片的訪問速度。