728x90
@SpringBootAplication
- 코드 상에 보이지 않지만 자동 구성, @Component가 붙은 클래스를 검색하여 Spring Bean으로 등록하는 기능, @Configuration이 붙은 클래스를 자동으로 찾아 추가적으로 Spring Bean으로 등록하는 기능을 활성화한다.
@SpringApplication.run(클래스명.class, args);
- Spring 애플리케이션을 부트스트랩(애플리케이션 실행 전 여러 설정 작업을 통해 실행 가능하게 만드는 단계)하고 실행하는 역할
@RestController
- Spring MVC에서는 특정 클래스에 @RestController를 추가하면 해당 클래스가 REST API의 리소스를 처리하기위한 API 엔드포인트로 동작함을 정의한다. 또한, 애플리케이션 로딩 시에 Spring Bean으로 등록해준다.
- API 엔드포인트는 API 요청이 수행되는 곳을 말한다.
@RequestMapping
- 클라이언트의 요청과 이를 처리하는 핸들러 메서드(Handler Method)를 매핑하는 역할을 한다.(@RequestMapping 애너테이션에 정의된 URI에 매치되는 요청을 처리할 수 있게 도와줌)
- produces 에트리뷰트는 응답데이터를 어떤 미디어 타입으로 클라이언트에게 전송할 지를 설정한다. MediaType.APPLICATION_JSON_VALUE라고 설정하면 응답데이터로 JSON 형식의 데이터를 전송하겠다는 의미가 되고, 이 값을 설정하지 않으면 문자열 자체를 전송하게 된다.
@GetMapping
- 클라이언트가 서버에 리소스를 조회할 때 사용하는 애너테이션
@PostMapping
- 클라이언트의 요청 데이터를 서버에 생성할 때 사용
@PutMapping
- 서버의 리소스를 수정할 때 사용(리소스의 모든 정보)
@PatchMapping
- 서버의 리소스를 수정할 때 사용(리소스의 일부 정보)
@DeleteMapping
- 서버의 리소스를 삭제할 때 사용
Contoroller 핸들러 메서드의 Argument
@RequestParam
- 핸들러 메서드의 파리미터 종류 중 하나로, 클라이언트 측에서 전송하는 요청 데이터(쿼리 파라미터 등)를 서버 쪽에서 전달 받을 때 사용
@RequestBody
- HTTP Request Body를 읽어 지정한 Java 객체로 변환해줌, @PostMapping에서 주로 사용
@PathVariable
- @RequestMapping에 패턴 형식으로 정의된 URL의 변수에 바인딩(연결)할 수 있게 해줌
- 핸들러 메서드의 파라미터 종류 중 하나로, 괄호 안에 입력한 문자열 값은 GetMapping({})의 중괄호 안의 문자열과 동일해야하며 만약 다를 경우 MissingpathVariableException이 발생한다.
ReponseEntity
- HttpEntity의 확장클래스이다. HttpStatus 상태 코드를 추가한 전체 HTTP 응답을 표현하는 클래스이다.
- ResponseRntity 객체를 생성하여 응답 데이터를 감싸고 HttpStatus 상태 코드를 추가하여 응답데이터와 함께 전달할 수 있음
@RequestBody
- 클라이언트 쪽에서 전송한 JSON 형식의 Request Body를 DTO클래스의 객체로 반환
- JSON 역직렬화 : Java 객체 -> JSON
@ResponseBody
- JSON 형식의 Response Body를 클라이언트에게 전달하기 위해 DTO 클래스의 객체를 Response Body로 변환
- JSON 직렬화 : JSON -> Java 객체
@Postive
- 양수만
도메인 엔티티 클래스(Domain Entity Class)
- 서비스 계층에서 데이터 엑세스 계층과 연동하면서 비지니스 로직을 처리하기 위해 필요한 데이터를 담는 역할을 함
예외처리
@Exceptionhandler
- 해당 Controller에서 발생하는 예외를 처리할 수 있게 된다.
- 각각의 Controller에서 예외를 처리하기 위해 붙기 때문에 코드의 중복이 발생한다.
@RestControllerAdvice
- 클래스 레벨에 붙음()
- @Controller, @RestController가 적용된 Bean 내에서 발생하는 예외를 캐치하여 하나의 메서드에서 처리하는 기능을 한다.
- 예외처리를 공통화할 수 있다.(예외처리를 한 곳에서 할 수 있다.)
- @Exceptionhandler가 붙은 메서드에만 적용이 된다.
@Configuration
- Spring에서 Bean 검색 대상인 Configuration 클래스로 간주하여 @Bean 애너테이션이 추가된 메서드를 검색하여 해당 메서드에서 리턴하는 객체를 Spring Bean으로 추가해줍니다.
@Component
- 개발자가 작성한 클래스를 Spring Bean으로 등록하는 Annotation
@RequiredArgsConstructor
- final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다.
728x90
'[Spring] > Annotation' 카테고리의 다른 글
컴포넌트 스캔(@ComponentScan)과 @Autowired (0) | 2023.03.05 |
---|---|
@NotNull, @NotBlank, @NotEmpty 차이 (0) | 2022.11.17 |