Sobes.tech
Junior

Java жана Spring контекстинде бина деген эмне?

sobes.tech AI

AIден жооп

Java we Spring kontekstinde, bean - bu Spring IoC (Inversion of Control) konteyneri tarapyndan dolandyrylýan obýekt.

Esasy nokatlar:

  • Obýekt: Bu, her dürli adaty Java obýektidir.
  • Spring tarapyndan dolandyrylýar: Spring Konteyner jogapkärdir:
    • Bean nusgalaryny döretmek.
    • Konfiqurasiýa (baglanyşyklary injektsiya etmek).
    • Ömür çyzgysyny dolandyrmak (başlatmak, ulanmak, tamamlamak).
  • Konfiqurasiýa: Beanler XML, annotations (@Component, @Service, @Repository, @Controller, @Bean) ýa-da Java esasly konfiqurasiýa arkaly kesgitlenýär.
  • Statuslar: Köplenç beanler Spring Konteýner kontekstinde singleton bolup, başga scope-ler (scope): prototype, request, session we global session bolup biler.

@Component annotation ulanyp bean kesgitläniň mysaly:

// Spring Konteýneri tarapyndan bean hökmünde tanalýan klass
@Component
public class MyService {

    // Spring injektsiya etjek garaşýanlyk
    private final MyRepository myRepository;

    // Garaşýanlygy injektsiya etmek üçin konstruktor
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

    public void doSomething() {
        myRepository.getData();
    }
}

Java esasly konfiqurasiýa ulanyp bean kesgitläniň mysaly:

// Konfiqurasiýa klassy
@Configuration
public class AppConfig {

    // Bean-ny beyan edýän metod
    @Bean
    public MyService myService(MyRepository myRepository) {
        return new MyService(myRepository);
    }

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

Beanler Spring programmanyň çägini düzýär, komponentleriň baglanyşygyny we dolandyrylyşyny üpjün edýär.