Spring 14

[Spring]HTTP 응답을 보내는 방법과 HttpMessageConverter 자세하게 파악해보기

서버에서 응답 데이터를 만드는 방법은 크게 정적 리소스, 뷰 템플릿, HTTP 메시지 사용 3가지 이다. 스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources HTTP 응답 - 뷰 템플릿 1. ModelAndView 사용 @RequestMapping("/response-view-v1") public ModelAndView responseViewV1() { ModelAndView mav = new ModelAndView("response/hello") .addObject("data", "hello!"); return mav; } 2.String을 반환 HTTP 메세지 응답 관련 @Responsebo..

Spring 2022.06.06

[Spring]HTTP 요청을 Controller에서 받는 방법

Spring은 편리하게 HTTP 요청을 받을 수 있도록 도와준다. Servlet을 이용하는 방법과 Spring이 제공해주는 기능을 이용하는 버전을 차례대로 알아본다. HTTP 요청 - 기본, 헤더 조회 HttpMethod - HTTP 메서드를 조회한다. Locale - Locale 정보를 조회한다. @RequestHeader MultiValueMap headerMap - 모든 HTTP 헤더를 MultiValueMap 형식으로 조회한다. @RequestHeader("host") String host - 특정 HTTP 헤더를 조회한다. @CookieValue(value = "myCookie") String cookie - 특정 쿠키를 조회한다. HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form 클..

Spring 2022.06.06

[Spring]Container의 Bean 관리 방법과 Scope

스프링 컨테이너의 Bean 관리 방법 스프링 컨테이너는 객체 인스턴스를 싱글톤으로 관리한다. 싱글톤 패턴이든 스프링 같은 싱글톤 컨테이너를 사용하든 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지하도록 설계하면 안된다. 아래는 주의점과 사용법이다. 1. 특정 클라이언트에 의존적인 필드가 있으면 안된다. 2. 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안된다. 3. 필드 대신에 자바에서 공유되지 않는 지역변수, 파라미터 등을 사용해야 한다. 상태를 유지하도록 설계할 경우 발생하는 문제점에 대해서 알아보겠다. public class StatefulService { private int price; //상태를 유지하는 필드 public void..

Spring 2022.06.06

[Spring]의 엑추에이터 엔드포인트(Actuator Endpoint)란?

엔드포인트(Endpoint) An endpoint is simply one end of a communication channel. (stackoverflow) 단순히 커뮤니케이션 채널의 한쪽 끝이라고 설명하고 있습니다. 개발하는 입장에서 보자면 서비스를 이용할 때 한쪽 끝에 해당하는 URI라고 볼 수 있습니다. 스프링 부트의 엑추에이터 엔드포인트란 애플리케이션의 상태를 관리할 수 있는 URI를 말합니다. 엑추에이터 엔드포인트를 사용하면 애플리케이션을 쉽게 모니터링할 수 있습니다. 스프링 부트는 여러가지 엔드포인트를 내장하고 있으며 자체 엔드포인트도 추가할 수 있습니다. 사용을 위해서는 아래의 의존성을 추가해야 합니다. implementation 'org.springframework.boot:spring..

Spring 2022.04.01