스프링부트 주요 어노테이션 정리2 -롬복, 예외처리, JPA, 문자열 검증

이동복·2022년 3월 21일
0

스프링 기초공부

목록 보기
5/5
post-thumbnail

🎈롬복 관련 어노테이션


  • @Getter / @Setter - 특정 필드 위에서 어노테이션을 붙여주면, 자동으로 생성된 접근자와 설정자 메소드를 사용할 클래스 위에 붙여주는 경우에는 모든 필드에 접근자와 설정자가 자동으로 생성된다.

  • @NoArgsConstructor - 파라미터가 없는 기본 생성자를 생성한다.

  • @AllArgsConstructor - 필드 값을 모두 포함한 생성자를 생성해준다.

  • @RequiredArgsConstructor - final필드와 @NonNull 어노테이션이 붙은 필드에 대한 생성자를 생성하여 특정 변수만을 활용하는 생성자를 생성해준다.

  • @ToString - 필드를 기반으로 ToString 메서드를 자동생성하며, 클래스명(필드 1 이름 = 필드 1 값, 필드 2 이름 = 필드 2 값)으로 출력된다. @ToString(exclude=”필드명”)을 사용하여 원하지 않는 필드는 제외 할 수 있다.

  • @EqualsAndHashCode - Equals와 hashCode 메소드를 자동으로 생성해주며, callSuper를 사용해서 메소드 자동 생성 시 부모 클래스의 필드까지 고려 할 것인지를 설정 할 수 있다.

  • @Data - @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor를 한 번에 생성해준다.

🎈JPA 관련 어노테이션


  • @ControllerAdvice - 모든 컨트롤러 전반에 걸쳐 부가적인 동작(예외처리, 바인딩 모델, 모델 객체 적용)을 해주고 싶은 경우에 사용할 수 있는 어노테이션이다.

  • @ExceptionHandler - @Controller@RestController가 적용된 Bean 내부에서 발생하는 특정 예외를 하나의 메서드에서 처리해주기 위한 어노테이션

🎈JPA 관련 어노테이션


  • @Entity - @Entity 어노테이션을 클래스에 선언하면 그 클래스는 JPA가 관리한다. 그러므로 DB의 테이블과 Class(VO,DTO)와 맵핑한다면 반드시 @Entity를 붙여주어야 한다.
  • @Column - 객체 필드와 DB 테이블 컬럼은 맵핑한다.
    • 속성: name, insertable, updateable, table, nullable, unique 등
  • @Id - JPA가 객체를 관리할 때 식별할 기본키를 지정한다.
  • @Enumerated - 자바 enum 타입을 매핑할 때 사용한다.
  • @Transient - DB에 저장하지도 조회하지도 않는다. 객체에 임시로 값을 보관하고 싶을 때 사용

🎈문자열 검증 어노테이션


  • @Valid - 문자열 유무 검증, 최대 최소 검증, 범위 값에 대한 검증, 시간 값에 대한 검증, 이메일 검증, 자릿수 범위 검증, Boolean 값에 대한 검증 등등 입력값에 대한 검증을 한다.
profile
아는것 하나 없는 유기물 덩어리

0개의 댓글