본문 바로가기
Spring

사용한 Annotation 모음

by graygreat 2021. 3. 6.
728x90
반응형

@SpringBootApplication

  • 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정
  • 이 어노테이션을 포함한 클래스는 항상 프로젝트 최상단 위치

@RestController

  • 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어 줌
  • 예전에는 @ResponseBody를 각 메소드마다 선언했던 것을 하번에 사용할 수 있게 해준다고 생각하면 됨

@GetMapping

  • HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어 줌

@ExtendWith(SpringExtension.class)

  • 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자를 실행시킴
  • 여기서는 SpringExtension라는 스프링 실행자를 사용
  • 즉, 스프링 부트 테스트와 JUnit 사이에 연결자 역할

@WebMvcTest

  • 여러 스프링 테스트 어노테이션 중, Web(Spring MVC)에 집중할 수 있는 어노테이션
  • 선언할 경우 @Controller, @ControllerAdvice 등을 사용 가능
  • 단, @Service, @Component, @Repository등은 사용 불가

@Autowired

  • 스프링이 관리하는 빈(Bean)을 주입 받음

@RequiredArgsConstructor

  • 선언된 모든 final 필드가 포함된 생성자를 생성
  • final이 없는 필드는 생성자를 생성하지 않음

@RequestParam

  • 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션

@Entity

  • 테이블과 링크될 클래스임을 나타냄
  • 기본값으로 클래스의 카멜케이스 이름을 언더스코어 네이밍(_)으로 테이블 이름을 매칭
  • ex) SalesManager.java --> sales_manager table

@Id

  • 해당 테이블의 PK 필드를 나타냄

@GeneratedValue

  • PK의 생성 규칙을 나타냄
  • GenerationType.IDENTITY 옵션을 추가해야만 auto_increment가 됨

@Column

  • 테이블의 칼럼을 나타내며 굳이 선언하지 않더라도 해당 클래스의 필드는 모두 칼럼이 됨
  • 사용하는 이유는, 기본 값 외에 추가로 변경이 필요한 옵션이 있으면 사용

@NoArgsConstructor

  • 기본 생성자 자동 추가

@Builder

  • 해당 클래스의 빌더 패턴 클래스 생성
  • 생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함

@MappedSuperClass

  • JPA Entity 클래스들이 이 어노테이션을 가진 클래스를 상속할 경우 클래스의 필드들도 칼럼으로 인식

@EntityListener(AuditingEntityListener.class)

  • 이 어노테이션을 가진 클래스에 Auditing 기능을 포함

@CreatedDate

  • Entity가 생성되어 저장될 때 시간이 자동 저장

@LastModifiedDate

  • 조회한 Entity의 값을 변경할 때 시간이 자동 저장

@EnableWebSecurity

  • Spring Security 설정들을 활성화

@Target()

  • 이 어노테이션이 생성될 수 있는 위치를 지정
  • ex) @Target(ElementType.PARAMETER)는 PARAMETER로 지정했으니 메소드의 파라미터로 선언된 객체에서만 사용 가능
  • 이 외에도 클래스 선언문에 쓸 수 있는 TYPE등이 있음

@interface

  • 이 파일을 어노테이션 클래스로 지정

@WithMockUser

  • 인증된 모의(가짜) 사용자를 만들어서 사용
  • roles에 권한을 추가할 수 있음
  • 즉, 이 어노테이션으로 인해 특정 권한을 가진 사용자가 API를 요청하는 것과 동일한 효과를 가지게 함
반응형

댓글