Junior — Middle
126
Ի՞նչ տարբերություն կա Spring-ի կոմպոնենտների կոնֆիգուրացիայի շրջանակում @Bean և @Component նշանների օգտագործման միջև։
Ընկերությունները, որտեղ հարցրել են
Պատասխան AI-ից
sobes.tech AI
Аннотация @Component используется для автоматического обнаружения и регистрации класса как Spring-бина через сканирование компонентов (component scanning). Она ставится над классом, и Spring создает экземпляр этого класса и управляет им в контейнере.
@Bean — это аннотация, которая применяется к методу внутри класса, помеченного как @Configuration. Метод с @Bean возвращает объект, который Spring регистрирует как бин. Это более явный способ конфигурирования бинов, когда нужно контролировать создание экземпляра, например, с параметрами или сложной логикой.
Пример:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
@Component
public class MyComponent {
// Этот класс автоматически зарегистрируется как бин
}
Итого:
@Component— автоматическое создание бина из класса при сканировании.@Bean— явное создание бина через метод в конфигурационном классе.