웹, 앱

[스프링부트] 어노테이션(Annotation) 정리

Hyun-danpung2 2022. 6. 25. 23:53
728x90
반응형

@RestController

- 컨트롤러를 JSON을 반환하는 컨트롤러로 만들어 줌

 

@GetMapping("/path")

- HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어 줌. URI는 http://localhost:8080/path가 된다

 

@RunWith(SpringRunner.class)

- 테스트를 진행할 때 JUnit에 내장된 실행자 외에 다른 실행자(SpringRunner)를 실행

- 즉, 스프링부트 테스트와 JUnit사이의 연결자 역할

 

@WebMvcTest

- 여러 스프링 테스트 어노테이션 중, Web(Spring MVC)에 집중할 수 있는 어노테이션

- 선언할 경우 @Controller, @ControllerAdvice 등을 사용할 수 있음

- 단, @Service, @Component, @Repository 등은 사용할 수 없음

 

@Autowired

- 스프링이 관리하는 빈을 주입받음

 

@RequiredArgsConstructor

- 선언된 모든 final 필드가 포함된 생성자를 생성해줌

- final이 없는 필드는 생성자에 포함되지 않는다.

 

@RequestParam

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

- @RequestParam("name")의 경우 name으로 넘어온 파라미터를 받음

 

@Entity

- 테이블과 링크될 클래스임을 나타냄

 

@Id

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

 

@GeneratedValue

- PK의 생성 규칙을 나타냄

- 스프링부트 2.0 버전의 경우 GenerationType.IDENTITY 옵션을 추가해야 auto_increment가 됨

 

@NoArgsConstructor

- 기본 생성자를 자동으로 추가해줌

 

@Getter

- 클래스 내 모든 필드의 Getter 메소드를 자동 생성

 

@Builder

- 해당 클래스의 빌더 패턴 클래스를 생성

 

@After

- JUnit에서 단위 테스트가 끝날 때마다 수행되는 메소드를 지정

- 보통은 배포 전 전체 테스트를 수행할 때 테스트간 데이터 침범을 막기 위해 사용

 

@CreatedDate

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

 

@LastModifiedDate

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

 

@Enumerated(EnumType.STRING)

- JPA를 사용하여 데이터베이스로 저장할 때 Enum 값을 어떤 형태로 저장할 지 결정

- 기본적으로는 int로 된 숫자가 저장

- EnumType.STRING을 붙이면 문자열로 저장

 

@EnableWebSecurity

- Spring Security 설정들을 활성화

 

@Target(ElementType.PARAMETER)

- 이 어노테이션이 생성될 수 있는 위치를 지정

- PARAMETER로 지정했으니 메소드의 파라미터로 선언된 객체에서만 사용할 수 있음

 

@interface

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

 

@Before

- 매번 테스트가 시작되기 전에 MockMvc 인스턴스를 생성

 

 

 

220625 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 어노테이션 정리 시작 

220626 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 어노테이션 정리 완료

 

728x90
반응형