본문 바로가기
[Spring]/Annotation

스프링 관련 애너테이션, 클래스, 메서드 무지성 정리

by 황원용 2022. 10. 26.
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