스프링 기본 어노테이션 정리
-
@RestController
- @Controller + @ResponseBody 를 합친 어노테이션으로 메소드의 반환 결과를 JSON 형태로 반환한다.
- @Cotroller : api 와 view를 동시에 사용하는 경우에 사용, view return이 주 목적
- @RestController : view가 필요없는 api만 지원하는 서비스에서 사용.
-
@RequestMapping
- 요청 url을 어떤 메서드가 처리할 것인지 매핑해주는 어노테이션
- 라우팅정보를 제공하며 선언한 경로의 값에 따라 HTTP 요청이 해당 메서드에 매핑되어야 하는 것을 스프링에 알림.
-
@GetMapping, PostMapping, DeleteMapping, PutMapping, PatchMapping
- 기존에 사용하였던 RequestMapping에 속성을 지정해주지 않고 간단히 사용하는 어노테이션
-
@Service
- 비즈니스 로직이 들어가는 Service 빈 등록
-
@Component
- Component-scan을 선언에 의해 특정 패키지 안의 클래스들을 스캔하고, @Component 어노테이션이 있는 클래스에 대하여 bean 인스턴스를 생성한다.
-
@Controller, @Service, @Repository
- @Component-구체화-> @Controller, @Service, @Repository
- bean으로 등록
-
@Configuration
@Configuration
public class UserConfig {
@Bean
public User user() {
return new User();
}
}
@Component와 사용성을 위해 구분되어 일반적으로 위와같이 @Bean을 구성하는 Class임을 알려주는 명시적인 Component로써 사용되어짐.
추가 설정 클래스를 import하거나 컨텍스트안에 추가 빈 등록을 허용한다.
Lombok 어노테이션
- @Getter, @Setter
- 코드가 컴파일 될 때, Getter/Setter 메서드를 생성한다.
- @NoArgsConstructor
- 파라미터를 받지 않는 생성자를 만들어준다.
- @AllArgsConstructor
- 모든 속성에 대해서 생성자를 만들어준다.
- @Data
- @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 합쳐 둔 어노테이션
- @Builder
- 빌더 패턴을 생성할 때 사용한다