Spring Boot 기반 애플리케이션
>설정 조건
>애플리케이션 경계 및 요구 사항
우선은 간략하게만...!
-버거 가게를 위한 애플리케이션
-멤버(고객, 점장) 정보
-버거 정보
-주문 정보
1. Entrypoint Class
애플리케이션의 시작점이 되는 클래스를 Entrypoint Class라고 한다.
Spring Boot를 이용했다면, Entrypoint Class는 자동 생성된다. 위의 조건대로 설정한 상태에서는 아래 경로를 따른다.
src -> main -> java -> com.example -> PracticingControllerApplication
@SpringBootApplication
-자동 구성 활성화
-애플리케이션 패키지 내의 @Component가 붙은 클래스를 검색(Scan)한 후, Spring Bean으로 등록하는 기능 활성화
-@Configuration이 붙은 클래스를 찾고, Spring Bean으로 등록하는 기능 활성화
SpringApplication.run(PracticingControllerApplication.class, args);
-Spring 애플리케이션을 실행 가능한 단계로 준비시키고 실행하는 역할
-Bootstrap : 애플리케이션의 실행 전, 설정 작업을 수행하고 준비하는 것을 Bootstrap이라고 한다.
Controller
>MemberController
@RestController
-해당 애너테이션이 붙은 클래스는 Rest API의 리소스를 처리하기 위한 API 엔드포인트로 동작하게 된다.
-해당 애너테이션이 붙은 클래스는 애플리케이션 로딩 시, Spring Bean으로 등록된다.
@RequestMapping
-해당 애너테이션은 클라이언트의 요청(URL)과 요청을 처리하는 핸들러 메서드를 매핑하는 역할을 한다.
-클래스 전체에 사용되는 공통 URL을 attribute로 설정한다.
@PostMapping
-HTTP 메서드 중 POST 요청이 들어왔을 경우, @PostMapping이 붙은 메서드(핸들러 메서드)가 작동되게 하는 애너테이션
-@GetMapping, @PatchMapping, @DeleteMapping도 존재함!
-Mapping Attribute로 URL을 지정할 수 있음.
: URL의 일부를 지정하여 이를 매개변수로 사용 가능
@PathVariable
-해당 애너테이션의 Attribute는 문자열 형태로 지정하며, Mapping Attribute의 {}안과 일치해야한다.
-일치하지 않으면 MissingPathVariableException 발생
-해당 URL의 경로를 변수로 받을 수 있게 만드는 애너테이션
@RequestParam
-클라이언트의 요청 데이터를 쿼리 파라미터, 폼 데이터, x-www-form-urlencoded 형식으로 제공할 때, 서버가 이를 받기 위해 사용하는 애너테이션
-key와 value 값으로 데이터를 받는다.
ResponseEntity
-HttpEntity 클래스를 상속하는 클래스
-생성자에 인자로 HttpStatus를 같이 제공할 수 있음.
-응답 데이터(JSON 형식)와 HttpStatus를 동시에 반환할 수 있는 방법으로 쓰임
-내부에서 HttpMessageConverter가 작동하기 때문에 가능하다.
(참고)https://itvillage.tistory.com/46
@RequestBody
-클라이언트의 요청 데이터 중 바디에 해당하는 부분을 RequestBody라고 한다.
-JSON 형태의 Request Body를 전달받을 때, 해당 애너테이션이 붙은 클래스의 객체 형태로 변환시킨다.
-역직렬화를 담당하는 부분
-Request Body가 JSON 형식이 아니라면, Unsupported Media Type 에러를 배출한다.
@ResponseBody
-클래스(DTO)의 객체를 JSON 형식의 Response Body로 만드는 애너테이션이다.
-하지만 리턴 값을 ResponseEntity를 사용하는 것 또한 JSON형태의 Response Body를 보내는 방법이다. 상황에 맞게 쓰면 된다.
'Spring > Spring Boot' 카테고리의 다른 글
Spring Framework Documentation (0) | 2022.10.25 |
---|---|
[Spring MVC] 04. DTO 클래스와 유효성 검증 (0) | 2022.10.22 |
[Spring MVC] 02. Spring MVC (0) | 2022.10.22 |
[Spring MVC] 01.애플리케이션 개발 시작 (0) | 2022.10.22 |