diff --git a/src/main/java/com/jiwon/mylog/domain/image/service/ImageService.java b/src/main/java/com/jiwon/mylog/domain/image/service/ImageService.java index fb5696a..91034b1 100644 --- a/src/main/java/com/jiwon/mylog/domain/image/service/ImageService.java +++ b/src/main/java/com/jiwon/mylog/domain/image/service/ImageService.java @@ -11,6 +11,7 @@ import com.jiwon.mylog.global.common.error.exception.NotFoundException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; @@ -36,6 +37,7 @@ public ImageResponse getProfileImage(Long userId) { return ImageResponse.create(null, profileImage.getFileKey(), IMAGE_PROFILE); } + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") @Transactional public ImageResponse uploadProfileImage(Long userId, String fileName) { @@ -54,6 +56,7 @@ public ImageResponse uploadProfileImage(Long userId, String fileName) { return ImageResponse.create(response.getPresignedUrl(), response.getKey(), IMAGE_PROFILE); } + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") @Transactional public void deleteProfileImage(Long userId) { User user = userRepository.findUserWithProfileImage(userId) diff --git a/src/main/java/com/jiwon/mylog/domain/post/service/PostService.java b/src/main/java/com/jiwon/mylog/domain/post/service/PostService.java index 3b3ca4a..76425e0 100644 --- a/src/main/java/com/jiwon/mylog/domain/post/service/PostService.java +++ b/src/main/java/com/jiwon/mylog/domain/post/service/PostService.java @@ -50,7 +50,9 @@ public class PostService { @CacheEvict(value = "post::notice", allEntries = true, condition = "#postRequest.type.equals('공지')"), @CacheEvict(value = "post::main", allEntries = true, condition = "#postRequest.type.equals('일반 글')"), @CacheEvict(value = "post::list", allEntries = true, condition = "#postRequest.type.equals('일반 글')"), - @CacheEvict(value = "post::filter", allEntries = true, condition = "#postRequest.type.equals('일반 글')") + @CacheEvict(value = "post::filter", allEntries = true, condition = "#postRequest.type.equals('일반 글')"), + + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") } ) @Transactional @@ -74,7 +76,9 @@ public PostDetailResponse createPost(Long userId, PostRequest postRequest) { @CacheEvict(value = "post::notice", allEntries = true, condition = "#postRequest.type.equals('공지')"), @CacheEvict(value = "post::main", allEntries = true, condition = "#postRequest.type.equals('일반 글')"), @CacheEvict(value = "post::list", allEntries = true, condition = "#postRequest.type.equals('일반 글')"), - @CacheEvict(value = "post::filter", allEntries = true, condition = "#postRequest.type.equals('일반 글')") + @CacheEvict(value = "post::filter", allEntries = true, condition = "#postRequest.type.equals('일반 글')"), + + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") } ) @Transactional @@ -95,7 +99,9 @@ public PostDetailResponse updatePost(Long userId, Long postId, PostRequest postR @CacheEvict(value = "post::detail", key = "#postId"), @CacheEvict(value = "post::main", allEntries = true), @CacheEvict(value = "post::list", allEntries = true), - @CacheEvict(value = "post::filter", allEntries = true) + @CacheEvict(value = "post::filter", allEntries = true), + + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") }) @Transactional public void deletePost(Long userId, Long postId) { diff --git a/src/main/java/com/jiwon/mylog/domain/readme/service/ReadmeService.java b/src/main/java/com/jiwon/mylog/domain/readme/service/ReadmeService.java index e52558f..e3b7349 100644 --- a/src/main/java/com/jiwon/mylog/domain/readme/service/ReadmeService.java +++ b/src/main/java/com/jiwon/mylog/domain/readme/service/ReadmeService.java @@ -9,6 +9,7 @@ import com.jiwon.mylog.global.common.error.ErrorCode; import com.jiwon.mylog.global.common.error.exception.NotFoundException; import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -19,6 +20,7 @@ public class ReadmeService { private final UserRepository userRepository; private final ReadmeRepository readmeRepository; + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") @Transactional public ReadmeResponse editReadme(Long userId, ReadmeRequest request) { Readme readme = readmeRepository.findByUserId(userId).orElse(null); @@ -34,6 +36,7 @@ public ReadmeResponse editReadme(Long userId, ReadmeRequest request) { return ReadmeResponse.from(readmeRepository.save(readme)); } + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") @Transactional public void deleteReadme(Long userId) { Readme readme = readmeRepository.findByUserId(userId) diff --git a/src/main/java/com/jiwon/mylog/domain/user/service/UserBlogService.java b/src/main/java/com/jiwon/mylog/domain/user/service/UserBlogService.java index 720884e..35b651b 100644 --- a/src/main/java/com/jiwon/mylog/domain/user/service/UserBlogService.java +++ b/src/main/java/com/jiwon/mylog/domain/user/service/UserBlogService.java @@ -12,6 +12,7 @@ import com.jiwon.mylog.global.common.error.ErrorCode; import com.jiwon.mylog.global.common.error.exception.NotFoundException; import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -26,6 +27,7 @@ public class UserBlogService { private final PostRepository postRepository; private final ReadmeRepository readmeRepository; + @Cacheable(value = "blog::home", key = "#userId", condition = "#userId != null") @Transactional(readOnly = true) public UserMainResponse getUserMain(Long userId) { User user = userRepository.findUserWithProfileImage(userId) diff --git a/src/main/java/com/jiwon/mylog/domain/user/service/UserService.java b/src/main/java/com/jiwon/mylog/domain/user/service/UserService.java index 508f0ba..0faea30 100644 --- a/src/main/java/com/jiwon/mylog/domain/user/service/UserService.java +++ b/src/main/java/com/jiwon/mylog/domain/user/service/UserService.java @@ -14,6 +14,7 @@ import com.jiwon.mylog.global.common.error.exception.DuplicateException; import com.jiwon.mylog.global.common.error.exception.NotFoundException; import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; @@ -37,6 +38,7 @@ public UserResponse getUserProfile(Long userId) { return UserResponse.fromUser(user); } + @CacheEvict(value = "blog::home", key = "#userId", condition = "#userId != null") @Transactional public UserResponse updateUserProfile(Long userId, UserProfileRequest userProfileRequest) { User user = userRepository.findById(userId)