자주 사용되는 Spring Annotation

Jongwon·2023년 2월 4일
0

Java/Spring

목록 보기
8/12

MVC 지정 관련

  • @Controller
  • @Service
  • @Repository : Spring Boot에서는 @EnableJpaRepositories가 자동 설정되어있어, JpaRepository를 상속받을 때 어노테이션을 지정해주지 않아도 자동으로 빈에 등록됩니다.
  • @RestController
  • @Entity

Controller 관련

  • @RequestMapping : 요청을 매핑시켜줍니다.
    * 파라미터 : value=URN값, method=RequestMethod.[GET, POST...]
  • @GetMapping
  • @PostMapping
  • @DeleteMapping
  • @PutMapping : 전체 리소스 수정에 사용합니다.
  • @PatchMapping : 일부 리소스만 수정할 때 사용합니다.
  • @RequestParam : 1개씩 파라미터가 바인딩됩니다. URL에서 데이터를 받아옵니다. 요청의 Body부분을 조회하지는 않습니다.
  • @ModelAttribute : 파라미터값이나 form-data를 받아올 때 사용합니다. 받아오는 객체에 Setter가 있어야 합니다. 자동으로 model에 넣어집니다.
  • @RequestBody : 요청의 Body에 있는 JSON 데이터를 받아올 때 사용합니다. JSON타입을 JAVA객체로 변환해줍니다. Setter가 필요없습니다.
  • @PathVariable

Entity 관련

  • @Id
  • @GeneratedValue
  • @ManyToOne : 앞에 꺼가 자신, 뒤에꺼가 참조되는 엔티티(N : 1)
    - (fetch = FetchType.LAZY) 지정 시 프록시 객체로 가져옴. 이후 사용 시에 가져와야함

객체/메서드 생성 관련

  • @Autowired : 필드 의존성 주입에 사용, 권장하지 않는 방법입니다.
  • @RequiredArgsConstructor : 생성자 의존성 주입에 사용, final필드, @NonNull필드에 대해 생성자를 자동으로 생성해줍니다.
  • @NoArgsConstructor : 기본 생성자를 생성해줍니다. 하지만 다른 생성자가 존재한다면 생성하지 않습니다.
  • @AllArgsConstructor
  • @Getter
  • @Setter
  • @EqualsAndHashCode
  • @ToString
  • @Builder : 생성자들을 자동으로 만들어주dArgsConstructor + ToString + EqualsAndHashCode를 모두 생성해주는 어노테이션입니다.
    고, build()를 통해 객체를 생성할 수 있다.
  • @Data : Getter + Setter + Require

로그 관련

  • @Log4j2

기타

  • @Transactional : 트랜잭션 처리
    - (readOnly = true/false) : true면 select문만 호출, false는 update가 진행됨




어노테이션 사용 시 참고할만한 자료

엔티티 클래스의 클린코드(올바른 Lombok 어노테이션 사용법)
https://www.nowwatersblog.com/springboot/springstudy/lombok

UUID vs AUTO_INCREMENT
https://www.bytebase.com/blog/choose-primary-key-uuid-or-auto-increment

Entity에 Setter사용?
https://velog.io/@langoustine/setter%EB%A5%BC-%EC%93%B0%EC%A7%80%EB%A7%90%EB%9D%BC%EA%B3%A0






profile
Backend Engineer

0개의 댓글