Spring Annotation 정리 ~ing

zwon·2023년 8월 18일
0

Spring

목록 보기
1/12

Annotation 정리

Annotaion은 프로그래밍을 할 때 특별한 정보를 제공하는 데이터로 클래스나 메서드를 어떻게 처리해야하는지에 대해 알려준다고 생각하면 된다.
개발을 하면서 Annotaion이 많이 사용되기때문에 자주 사용하는 Annotaion에 대한 정리를 하는 글이다.

  • @RequiredArgsConstrictor
    • final이 붙은 멤버변수만 사용해서 생성자를 생성해주는 애노테이션.
  • @NoArgsConstructor
    • 파라미터가 없는 기본 생성자를 생성해주는 애노테이션
  • @AllArgsConstructor
    • 모든 필드값을 파라미터로 받는 생성자를 생성해주는 애노테이션
  • @RequestParam
    • HTTP url에 함께오는 쿼리 파라미터를 받아와 변수로 매핑하기 위한 애노테이션
    • ex) https://localhost:8080/api?name=hello 파라미터는 ?이후부터가 쿼리 파라미터이며 여러개의 파라미터는 &를 사용해서 구분한다.
    • @RequetParam("name") String query라고 하면, name이라는 쿼리 파라미터값을 가져와 query에 담는것으로 즉 hello를 query에 매핑하는 것
  • @RequestBody
    • HTTP Body안에 담겨져있는 JSON 데이터를 Value Object(VO)로 변환해주는 애노테이션
    • JSON -> VO로 매핑해는 것
  • @ResponseBody
    • Value Object(VO)를 JSON으로 변환하여 Http Body에 콱! 담아줌.
    • VO -> JSON 매핑해주는 것
  • @Controller
    • Spring MVC의 대표적인 컨트롤러 어노테이션
    • Model 객체를 생성해여 Model에 데이터를 담고 view를 반환함.
  • @RestController
    • @ResponseBody + @Controller의 기능 제공
    • view를 반환하는 것이 아닌 @ResponseBody가 붙어있으므로 객체를 JSON으로 변환 후 HTTP body에 담아 응답.
    • Rest Api 설계에 주로 사용
  • @Autowired
    • 필요한 의존 객체의 타입에 해당하는 빈을 찾아 주입시켜주는 애노테이션으로 DI를 수행한다.
    • 즉 @Autowired가 부여되면 필요한 인스턴스를 주입시켜준다.
    • 생성자 주입, setter, 필드단에 주로 사용하지만 이중 생성자 주입에 많이 사용한다.
    • 위에서 언급했듯이 의존성 주입을 해주기때문에 IoC 컨테이너에 주입시켜줄 대상이 bean이 등록되어 있어야한다.
  • @Repository
    • @Component의 구체화된 형태로 이름을 통해 역할을 알 수 있다는 장점이 있다.
    • @Service, @Controller도 마찬가지, @Component를 가지고있어 컴포넌트 스캔이 되고 어노테이션이 이름을 보고 클래스의 역할을 알 수 있음.
  • @ControllerAdvice
    • 모든 @Controller 즉, 전역에서 발생할 수 있는 예외를 잡아 처리해주는 annotation
  • @ExceptionHandler
    • Controller, @RestController가 적용된 Bean내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리
profile
Backend 관련 지식을 정리하는 Back과사전

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

글 재미있게 봤습니다.

답글 달기