Annotation은 주석이라는 의미이며, 인터페이스를 기반으로 한 문법입니다.
주석처럼 코드에 달아 클래스에 특별한 의미를 부여 또는 기능을 주입할 수 있습니다.
@Componentscan 어노테이션은 @Component 어노테이션 및 stereotype(@Service, @Repository, @Controller) 어노테이션이 부여된 클래스들을 자동으로 Scan하여 Bean으로 등록해주는 역할을 하는 어노테이션입니다.
SpringBoot를 사용한다면 별도로 설정하지 않는 이상 @ComponentScan을 사용할 필요가 없습니다.
왜냐하면, @SpringBootApplication이 @ComponentScan을 포함하고 있기 때문입니다.
@Component 어노테이션은 클래스를 Bean으로 등록하기 위한 어노테이션입니다.
@Component(value="beanId")
public class Velog {}
@Component에 value를 사용하면 Bean의 이름을 지정할 수 있습니다.
만약, 추가 정보가 없으면 클래스 이름을 Bean Id로 지정됩니다.
@Bean 어노테이션은 외부 라이브러리 등을 Bean으로 등록하기 위한 어노테이션입니다.
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper();
}
예로 ObjectMapper라는 외부 라이브러리가 있습니다.