사전적 의미로는 주석이라는 뜻이다.
프로그램에게 추가적인 정보를 제공해주는 메타데이터이다.
메타 데이터 : 데이터를 위한 데이터
Annotation 정리에 앞서 몇가지 개념을 짚어봐야한다.
DI에서 사용되는 어노테이션이다. 스프링에서 Bean인스턴스가 생성된 이후 @Autowired을 설정한 메서드가 자동으로 호출되고, 인스턴스가 자동으로 주입된다. 즉, 해당 변수 및 메서드에 스프링이 관리하는 Bean을 자동으로 매핑해주는 개념이다.
주로 Type을 이용해 Bean을 주입한다. 동일한 Bean타입의 객체가 여러개 있을 경우, Bean을 찾기 위해 @Qualifier 어노테이션을 같이 사용해야 한다.
개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용한다
@Bean에 name이라는 값을 이용하면 자신이 원하는 id로 Bean을 등록할 수 있다.
@Configuration을 클래스에 적용하고 @Bean을 해당 Class의 method에 적용하면 @Autowired로 Bean을 부를 수 있다.
@Configuration
public class ApplicationConfig {
@Bean(name="myarray")
public ArrayList<String> array(){
return new ArrayList<String>();
}
}
Spring Application Context를 만들 때 자동으로 설정하는 기능을 켠다.
스프링부트의 meta 파일을 읽어서, 미리 정의되어 있는 자바 설정 파일(@Configuration)들을 빈으로 등록하는 역할을 수행한다.
개발자가 직접 작성한 Class를 Bean으로 등록한다
해당 클래스가 DB에 접근하는 클래스임을 명시 (DAO에 적용)
DB Exception Translation을 자동으로 해준다.
@Component와 @Service, @Repository, @Controller, @Configuration이 붙은 클래스 Bean들을 찾아서 Context에 bean등록한다.
@Configuration, @EnableAutoConfiguration, @ComponentScan
3가지를 하나의 애노테이션으로 합친 것