Используя аннотацию @ComponentScan, вы можете указать Spring, где находятся компоненты, управляемые Spring.Эти Spring-Managed компоненты могут быть аннотированы с помощью @ Repository, @ Service, @Controller и ofcourse @ Component.
Например - Допустим, ваши подпружиненные компоненты находятся внутри 2 пакетов com.example.test1 и com.example.test2.Тогда ваш componentScan будет выглядеть примерно так:
@ComponentScan(basePackages="com.example.test1","com.example.test2")
. Конечно, у аннотации ComponentScan есть много других элементов.
Подробнее о них можно прочитать здесь - https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/ComponentScan.html.
С другой стороны, @Component - это общая аннотация для любого Spring-Managed компонента.Например, если вы создаете класс с именем Testing внутри пакета com.example.test1 и аннотируете Spring @ Component.
@Component
Class Testing
{
public Testing()
{
}
public void doSomething()
{
System.out.println("do something");
}
}
В соответствии с приведенным выше примером, во время сканирования компонентов он будет выбран и добавлен вконтекст приложения.
Надеюсь, это прояснит ситуацию:)