Sobes.tech
Junior — Middle

Springдеги @Bean жана @Component annotations ортосунда кандай айырма бар жана кайсы учурларда колдонуш керек?

sobes.tech AI

AIден жооп

@Component белгиси компонент сканирлөө аркылуу классты автоматтык түрдө аныктоо жана каттоо үчүн колдонулат. Ал түздөн-түз класстын үстүнө колдонулат жана класстын бини болушу керек.

@Bean белгиси @Configuration деп белгиленген класс ичиндеги методго колдонулат. Бул метод Spring тарабынан бини катары катталуучу объектти кайтарат.

Негизги айырмачылыктар:

  • @Component — автоматтык сканирлөө аркылуу табылган класстар үчүн.
  • @Bean — конфигурациялык класста кол менен бини түзүү үчүн.

Кайсы учурда колдонуу керек:

  • @Component — класс өзү компонент болуп, автоматтык түрдө табылса.
  • @Bean — сырттан келген классынан бини түзүү керек болсо же объект түзүүдө көбүрөөк логика талап кылынса.

Мисал:

@Component
public class MyService {
    // ...
}

@Configuration
public class AppConfig {
    @Bean
    public MyRepository myRepository() {
        return new MyRepository();
    }
}