SPRING

    Spring RestTemplate

    RestTemplate 이란 http server 와 통신을 단순화 하고 Restful 원칙을 지키도록 구성된 클래스 json과 xml 을 쉽게 받을 수 있도록 헤더 및 파서가 구성되어 있다. RestTemplate 작동 순서 어플리케이션이 RestTemplate를 생성하고, URI, HTTP메소드 등의 헤더를 담아 요청한다. RestTemplate 는 HttpMessageConverter 를 사용하여 requestEntity 를 요청메세지로 변환한다. RestTemplate 는 ClientHttpRequestFactory 로 부터 ClientHttpRequest 를 가져와서 요청을 보낸다. ClientHttpRequest 는 요청메세지를 만들어 HTTP 프로토콜을 통해 서버와 통신한다. RestTemp..

    스프링 비동기 타임아웃 설정 변경

    스프링에서 DeferredResult 를 이용해 비동기로직 구성시 디폴트로 30초가량 초과하면 타임아웃으로 AsyncRequestTimeoutException 이 발생하는 것으로 보인다. 연결시간을 늘리기 위해 application.yml 에 spring.mvc.async.request-timeout 값 설정을 해주었지만 적용되지 않는다.. WebMvcConfigurer 를 상속받은, @EnableWebMvc가 적용된 스프링 mvc 설정파일에 아래 설정을 추가해주니 동작 되었다. @Override public void configureAsyncSupport(AsyncSupportConfigurer configurer) { WebMvcConfigurer.super.configureAsyncSupport(c..

    spring 예외 핸들링

    1. @ControllerAdvice, @RestControllerAdvice 를 적용한 전역 예외 핸들링 설정 클래스 @RestControllerAdvice public class GlobalExceptionHandler { //@ResponseStatus(HttpStatus.UNAUTHORIZED) @ExceptionHandler(value = ExpiredJwtException.class) public ResponseEntity handleBaseException(HttpServletRequest request, ExpiredJwtException e) { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("token expired!"); } ..

    SpringBoot 에서 mobile리졸버 추가하기

    ranchat 개발을 하는데 모바일쪽 뷰도 추가하기 위해서 각 접속된 기기를 구별할 필요가 생겼어요. 그래서 추가한 스프링 디바이스 리졸버! 우선 제 환경은 Gradle 과 SpringBoot를 사용하고 있어요. gradle에 dependency 를 추가해줘요. compile group: 'org.springframework.mobile', name: 'spring-mobile-device', version: '1.1.5.RELEASE' 인터셉터를 추가 해줘요. //spring mobile 인터셉터 세팅 @Bean public DeviceResolverHandlerInterceptor deviceResolverHandlerInterceptor() { return new DeviceResolverHandl..