Dev/SpringBoot

1. [Springboot] Annotation 정리

VIPeveloper 2020. 1. 20. 13:32
728x90
반응형

1. @After

  • Junit에서 단위 테스트가 끝날 때마다 수행되는 메소드를 지정한다.
  • 보통은 베포 전 전체 테스트를 수행할 때 테스트간 데이터 침범을 막기 위해 사용한다.
  • 여러 테스트가 동시에 수행되면 테스트용 DB인 H2에 데이터가 그대로 남아있어 다음 테스트 시행 시 테스트가 실패할 수 있다. 이것을 방지

2. @RestController

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

3. @GetMapping

  • HTTP Method인 Get의 요청을 받을 수 있는 API를 만들어 준다.
  • @RequestMapping(method=RequestMethod.GET)으로 사용되었던 것을 대체한다.

4. @RunWith(SpringRunner.class)

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

5. @WebMvcTest

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

6. @Autowired

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

7. @Getter

  • 선언된 모든 필드의 getter 메소드를 생성

8. @RequiredArgsConstructor

  • 선언된 모든 final 필드가 포함된 생성자를 생성
  • final이 없는 필드는 생성자에 포함되지 않는다.

9. @NoArgsConstructor

  • 기본 생성자 자동 추가
  • public Posts(){}와 같은 효과

10. @Entity

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

11. @Builder

  • 해당 클래스의 빌더 패턴 클래스를 생성
  • 생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함된다.
  • 지금 채워야 할 필드가 정확히 무엇인지 지정할 수 있다.

12. @MappedSuperclass

  • JPA Entity 클래스들이 해당 어노테이션 클래스를 상속할 경우 필드들이 칼럼으로 인식되도록 한다.
  • @CreatedDate, @LastModifiedDate를 주로 지정한다.

13. @EntityLIsteners(AuditingEntityListener.class)

  • Auditing 기능을 포함시킨다.
    • Audit : 감시하다

14. @EnableJpaAuditing

  • jpa 감시기능을 활성화해준다. 주로 application.java main 함수에 적용한다.

15. @EnableWebSecurity

  • Spring Security 설정들을 활성화시켜 줍니다.

16. @SpringbootApplication

  • 스프링 부트의 자동설정, 스프링 Bean 읽기와 생성이 모두 자동으로 설정된다.
  • 이 위치부터 설정을 읽어나가기 때문에 이 클래스는 항상 프로젝트의 최상단에 위치해있어야한다.
728x90
반응형