Spring Framework 에서 사용되는 기본적인 어노테이션으로, Spring 컨테이너에 의해 관리되는 빈(Bean) 을 정의할 때 사용됨.
@Component
어노테이션을 클래스에 붙이면, 해당 클래스는 Spring의 자동 스캔(auto-scanning) 매커니즘에 의해 빈으로 등록됨
@Component
가 붙은 클래스는 Spring 컨테이너에 의해 자동으로 인식되고, 빈으로 등록됨@ComponentScan
을 통해 특정 패키지 내의 모든 클래스를 스캔하고, @Component
어노테이션이 붙어있는 클래스를 빈으로 등록함@Component
는 Spring에서 빈을 정의할 때 사용할 수 있는 가장 일반적인 어노테이션임. 특정 목적을 가진 빈을 정의할 때는 @Serivce
, @Repository
, @Controller
등의 어노테이션을 사용할 수 있지만, 모두 @Component
의 특수화된 형태임import org.springframework.stereotype.Component;
@Component
public class MyComponent {
public void doSomething() {
System.out.println("Doing something...");
}
}
@MyComponent
클래스는 @Component
어노테이션 덕분에 Spring 컨테이너에 의해 빈으로 등록됨. 이제 이 빈은 다른곳에서 @Autowired
를 통해 주입받아 사용할 수 있음
기본적으로 @Component
로 등록된 빈의 이름은 클래스 이름의 첫 글자를 소문자로 변환한 것. 예를들어, MyComponent
클래스는 myComponent
라는 이름으로 빈이 등록됨. 하지만, @Component("customBeanName")
과 같이 빈의 이름을 직접 지정할 수도 있음.
@Component("customBeanName")
public class MyComponent {
}