spring
Spring Boot cache에서 ConcurrentMapCache를 값으로 저장
Spring boot의 기본 캐쉬 구현체인 ConcurrentMapCache를 사용할 때 캐쉬의 값이 임의로 변경되는 경우가 있다. 예를 들면 특정 객체를 캐쉬에서 조회한 다음 값을 setter를 통해 변경을 했는데, 캐쉬의 값이 변경되는 문제이다. 아래의 예를 한번 보자. 예제 코드 서비스 코드에서 아래의 로직이 있다. @Cacheable(value = "user", key = "#userId") public User find(int userId) { return userMap.get(userId); } 여기서 사용자를 조회한 다음, 이름을 setter를 통해 변경을 하고 다시 조회를 하는 테스트 코드를 작성해보자. @Test void storeByValueTest() { // user 조회 User ..
2023. 9. 27. 13:46