개발자 '쑥말고인절미'
스프링 및 스프링 부트 어노테이션 정리(1) 본문
@Configuration
- 이 어노테이션을 단 클래스는 빈 설정을 담당하는 클래스가 되고, 이 클래스 안에서 @Bean 어노테이션이 동봉된 메소드를 선언하면, 그 메소드를 통해 스프링 빈을 정의하고 생명주기를 설정하게 된다. 자바 기반의 config가 싫다면 XML을 쓰면 된다.
@ComponentScan
- @Configuration 어노테이션과 함께 쓰이면, 이 클래스는 자바 빈 설정 클래스이며, 이 @ComponentScan 어노테이션에서 제공하는 package 속성을 통해 스프링 빈 범위를 정의할 수 있다.
@Import
- @Configuration 어노테이션이 선언 된 스프링 설정 클래스를 가져온다. 클래스명을 기입하면 되는데 예를 들면 DB 빈 설정과 DB를 활용하는 빈을 같이 써야하는 경우 사용하면 된다. 이 어노테이션을 사용하면 빈 선언 시 실행 순서도 보장되기 때문에 가끔 튀어나오는 빈 선언 오류도 막을 수 있다.
@Component
- 빈을 선언하는 클래스를 작성하기 위해 넣는 어노테이션이다. @ComponentScan의 주요 스캔 대상이다
@Autowired
- 이 어노테이션은 필드, 메소드, 생성자에다가 넣을 수 있다. 스프링 빈을 가져오는 가장 기본적인 방법이다. 해당 클래스에 맞는 빈을 가져오는데, 만약 하나만 있으면 이름을 아무렇게나 해도 잘 가져오고, 만약 2개 이상이면 시그니처 명칭에 맞는 빈을 가져오지만 그 외의 경우엔 NoUniqueBeanDefinitionException 예외가 발생한다.
@Bean
- @Configuration 선언한 빈 설정 클래스에 빈 선언을 담당하는 어노테이션으로, 메소드에만 넣을 수 있다. 보통은 메소드 이름이 곧 빈 이름이 된다.
@Primary
- @Configuration 선언한 빈 설정 클래스에 빈 선언을 담당하면서, 기본 빈 요소를 정의할 때 사용한다. 만약 같은 클래스로 여러 개의 빈을 설정했을 때, 이 어노테이션을 추가로 달면 @Autowired 어노테이션을 통해 빈을 주입 시 이 어노테이션을 가진 빈을 우선적으로 가져온다고 보면 된다. 빈 관리에 편리한 기능이므로 여러 빈을 다룰 때 참고하면 좋다.
@Required
- 일반적으로 빈 클래스를 초기화 시, 반드시 설정해야하는 setter 메소드를 정의할 때 사용한다. @Bean 선언 및 XML 방식의 빈 선언 시, 이 어노테이션을 통해 빈 속성을 정의하지 않으면 BeanInitializationException 예외가 발생한다. 선언적 어노테이션(ex. @Component 등)에도 넣을 수 있는데 이 때는 @Autowired(required = false) 어노테이션 주입을 통해 씹을 수 있다.
@Contorller
- 이 어노테이션을 통해 웹 요청의 기준을 담당한다. 이 어노테이션을 통해 빈 등록과 동시에 라우팅 테이블을 등록하는 중요한 어노테이션이다.
참고링크
https://dev.to/composite/-40c0
스프링 주요 어노테이션 정리
JRebel 제작사인 ZeroTurnaround (현재 Perforce가 인수함)에서 Spring Annotations Cheat Sheet 글을 올해 개제했는데, 상당히 유용한...
dev.to
'STUDY > Spring & SpringBoot' 카테고리의 다른 글
[Spring] Mapper.java와 Mapper.xml 설명 참고링크 (0) | 2022.11.29 |
---|---|
[Spring] maven, pom.xml에 대하여 (0) | 2022.11.26 |
스프링 컨테이너 BeanFactory와 ApplicationContext (0) | 2022.11.12 |
스프링 프레임워크 시작하기 (0) | 2022.10.29 |
[메모] IntelliJ 처음 프로젝트 실행 시 오류 발생 참고링크 (0) | 2022.10.22 |