[Spring] @Cacheable 동일 클래스 내부 메서드 호출시 미동작 원인 및 해결 이유는 Spring AOP! Spring Cache (EhCache 등 구현) 사용시 동일 클래스(Bean)내 @Cacheable 설정된 적용된 메서드를 자기 호출(Self-invocation)할 경우 Proxy Class에서 이미 캐싱된 결과를 가져오지 못하고 메서드를 다시 실행하게 됩니다. 이유는 @Cacheable 어노테이션을 통한 cache처리는 @Async, @Transactional 등과 마찬가지로 Spring AOP(Aspect-Oriented Programming)를 이용하기 때문입니다. Spring Cache는 프록시(Proxy)를 통해 동작하고 이를 조금 더 확장한 개념이 Spring AOP인데 이를 통해 로깅, 트랜잭션, 캐시 처리등 핵심로직에 처리 중 반복되는 횡단의 관심사를 모아서.. Program/Spring 5년 전
[Spring,SpringBoot] 디바이스(Mobile,Tablet) 체크 개요 시스템에서 클라이언트의 환경 ( Desktop, Mobile, Tablet 등) 을 구분하여 환경별로 별도의 처리를 하거나 다른 화면을 보여줘야 할 때가 있습니다. 이를 위해 보통 클라이언트의 userAgent 등의 정보를 기반으로 프로그램내에서 별도의 처리를 해야하나 ,Spring ( SpringBoot ) 환경에서는 Spring Mobile Device 모듈을 이용하여 조금 더 간편하게 처리하는 방법을 포스팅합니다. 1. Spring Mobile Device 의존성 추가 먼저 Maven (혹은 gradle) 에 Spring Mobile Device dependency를 추가해줍니다. org.springframework.mobile spring-mobile-device ${org.springfra.. Program/Spring 5년 전
[Spring] Redirect 관련 내용 ( RedirectAttributes / FlashMap ) POST/GET방식으로 예약생성같은 DB작업이 있는 페이지를 끝내고 결과페이지를 일반적으로 포워딩할경우 F5나 새로고침등으로 서버에 동일한 요청을 보내어 문제가 발생할 가능성이 있어 주요 서비스에는 중복 요청이 들어가지 않도록 결과는 redirect 할수있도록 처리가 필요합니다. A.hnt 화면 (submit) >> B.hnt 맵핑 Ctr에서 처리 후 (redirect) >> C.hnt 맵핑 Ctr에서 처리후 결과 view 포워딩 * 리다이렉트시 데이터 보내려면 아래와 같이 GET방식으로 데이터 붙여서 전송이 가능하나 데이터 전송시 정보를 숨길 수 없고 URL인코딩등의 문제가 있습니다. 1 return "redirect:/C.hnt?param1=1¶m2=2"; cs 이를 해결하기 위해 Redire.. Program/Spring 8년 전