Назад к вопросам
Junior
140
questionbank
Какие аннотации ты знаешь для того, чтобы Spring создавал бины на основании этих аннотаций?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
@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:
// src/main/java/com/example/config/AppConfig.java
package com.example.config;
import com.example.service.MyService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration // Указывает на класс конфигурации Spring
public class AppConfig {
@Bean // Указывает, что метод создает бин
public MyService myService() {
return new MyService(); // Создание экземпляра бина
}
}
Пример использования @Component:
// src/main/java/com/example/component/MyComponent.java
package com.example.component;
import org.springframework.stereotype.Component;
@Component // Указывает на компонент, управляемый Spring контейнером
public class MyComponent {
// ... логика компонента
}