spring boot 5

[Spring Boot] 2대 이상의 서버에서 세션 저장소 설정 방법

2대 이상의 서버에서 서비스하고 있다면 톰캣마다 세션 동기화 설정을 해야한다. 세션 저장소 방법 3가지 1) 톰캣 세션을 사용 - 일반적으로 별다른 설정을 하지 않을 때 기본적으로 선택되는 방식 - 이렇게 될 경우 톰캣(WAS)에 세션이 저장되기 때문에 2대 이상의 WAS가 구동되는 환경에서는 톰캣들 간의 세션 공유를 위한 추가 설정이 필요 2) MySQL과 같은 데이터베이스를 세션 저장소로 사용 - 여러 WAS 간의 공용 세션을 사용할 수 있는 가장 쉬운 방법 - 많은 설정이 필요 없지만, 결국 로그인 요청마다 DB IO가 발생하여 성능상 이슈가 발생 - 보통 로그인 요청이 많이 없는 백오피스, 사내 시스템 용도로 사용 3) Redis, Memchached와 같은 메모리 DB를 세션 저장소로 사용 - ..

Spring Boot 2020.12.03

[Spring Boot] template might not exist or might not be accessible by any of the configured template resolvers 오류 해결

Thymeleaf를 사용하고 Javascript로 Ajax 통신 중 다음과 같은 에러가 발생했다. template might not exist or might not be accessible by any of the configured template resolvers ... $.ajax({ method:'POST', url:'/getLocationData', dataType:'json', success:function (data){ console.log("data:::"+data); } }) @Controller public class LocationController { @Autowired private LocationService locationService; @PostMapping("/getLoc..

Spring Boot 2020.11.26

[Spring Boot] Thymeleaf 리소스 변경 시 Live reload 적용 오류 해결 방법

먼저, 기본적인 Live reload 설정(Devtools 의존성 추가, Copiler에서 Auto설정 등)을 했다고 가정한다. 검색해서 나온 설정을 해도 Live Reload가 적용이 안될 때가 있는데 그럴때는 1. Html Reload spring.thymeleaf.cache=false spring.thymeleaf.prefix=file:src/main/resources/templates/ 2. Css, Js Reload spring.resources.static-locations=file:src/main/resources/static/ 위와 같이 application.properties를 설정해주면 된다!!!

Spring Boot 2020.08.26

[Spring Boot] 예외를 따로 처리하는 @ControllerAdvice

예외를 처리할 때 아래와 같이 try catch방식이 아니라 public class RestaurantNotFoundException extends RuntimeException { //예외처리 함수 public RestaurantNotFoundException(Long id){ super("Could not find restaurant" + id); } } @GetMapping("/restaurants/{id}") public Restaurant detail(@PathVariable("id") Long id){ try{ Restaurant restaurant = restaurantService.getRestaurant(id); //기본정보 + 메뉴정보 }catch(RestaurantNotFoundExc..

Spring Boot 2020.06.30