@Component - общая аннотация для управляемых компонентов.@Repository - для классов доступа к данным (DAO).@Service - для классов бизнес-логики.@Controller - для классов, представляющих REST-контроллеры (@RestController - это @Controller + @ResponseBody).@Configuration - для классов, содержащих методы, помеченные @Bean.@Bean - для создания экземпляра бина методом, находящимся в классе @Configuration.@Scope - определяет область видимости бина (singleton, prototype, request, session, application, websocket).@Lazy - указывает на ленивую инициализацию бина.@Primary - указывает предпочтительный бин при наличии нескольких кандидатов одного типа.@Qualifier - используется с @Autowired для указания конкретного бина по имени при наличии нескольких кандидатов одного типа.@Profile - указывает, что бин должен быть создан только при активном определенном профиле.@Value - для внедрения значений из properties-файлов.@Autowired - для автоматического связывания зависимостей (внедрения бинов).@Required - (устаревшая, но может встречаться) указывает, что свойство должно быть установлено при конфигурации.Пример использования @Configuration и @Bean:
java
Пример использования @Component:
java