68 lines
2.2 KiB
Java
68 lines
2.2 KiB
Java
package com.rest.api.cache;
|
|
|
|
import com.rest.api.entity.board.Post;
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
import org.springframework.cache.annotation.CachePut;
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
public class CacheRepo {
|
|
|
|
private static final String CACHE_KEY = "CACHE_TEST";
|
|
|
|
@Cacheable(value = CACHE_KEY, key = "#postId")
|
|
public Post getPost(long postId) {
|
|
Post post = new Post();
|
|
post.setPostId(postId);
|
|
post.setTitle("title_" + postId);
|
|
post.setAuthor("author_" + postId);
|
|
post.setContent("content_" + postId);
|
|
return post;
|
|
}
|
|
|
|
@CachePut(value = CACHE_KEY, key = "#post.postId")
|
|
public Post updatePost(Post post) {
|
|
return post;
|
|
}
|
|
|
|
@Cacheable(value = CACHE_KEY, key = "{#postId, #title}")
|
|
public Post getPostMultiKey(long postId, String title) {
|
|
Post post = new Post();
|
|
post.setPostId(postId);
|
|
post.setTitle("title_" + postId);
|
|
post.setAuthor("author_" + postId);
|
|
post.setContent("content_" + postId);
|
|
return post;
|
|
}
|
|
|
|
@CachePut(value = CACHE_KEY, key = "{#post.postId, #post.title}")
|
|
// @CachePut(value = CACHE_KEY, key = "{#post.postId, #post.getTitle()}")
|
|
public Post updatePostMultiKey(Post post) {
|
|
return post;
|
|
}
|
|
|
|
@CacheEvict(cacheNames = {CACHE_KEY}, allEntries = true)
|
|
public void clearCache(){}
|
|
|
|
@Cacheable(value = CACHE_KEY, key = "{#postId}", condition="#postId > 10")
|
|
public Post getPostCondition(long postId) {
|
|
Post post = new Post();
|
|
post.setPostId(postId);
|
|
post.setTitle("title_" + postId);
|
|
post.setAuthor("author_" + postId);
|
|
post.setContent("content_" + postId);
|
|
return post;
|
|
}
|
|
|
|
@Cacheable(value = CACHE_KEY, key = "T(com.rest.api.cache.CustomKeyGenerator).create(#postId, #title)")
|
|
public Post getPostKeyGenerator(long postId, String title) {
|
|
Post post = new Post();
|
|
post.setPostId(postId);
|
|
post.setTitle("title_" + postId);
|
|
post.setAuthor("author_" + postId);
|
|
post.setContent("content_" + postId);
|
|
return post;
|
|
}
|
|
}
|