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를 요청하는 것과 동일한 효과를 가지게 함
반응형
'Spring' 카테고리의 다른 글
Transaction/@Transactional 이해하기 (0) | 2021.07.17 |
---|---|
AOP 이해하기 (1) | 2021.07.14 |
Spring Boot로 CORS 해결하기 (0) | 2021.04.05 |
Spring Boot와 공공 데이터 API 연동하기 (1) | 2021.04.05 |
일반적인 웹 애플리케이션 계층 구조 (0) | 2021.01.03 |
댓글