Junior
Бинҳо дар контексти Java ва Spring чистанд?
sobes.tech AI
Ҷавоб аз AI
Дар контексти Java ва Spring, бир бийн объектест, ки контейнер Spring IoC (Inversion of Control) идора мекунад.
Мавзӯъҳои асосӣ:
- Объект: Ин ҳар гуна объектии оддӣ Java мебошад.
- Идоракунӣ аз ҷониби Spring: Контейнер Spring масъул аст:
- Таҳия кардани нусхаҳои бийн.
- Конфигуратсия (внедкунии вобастагиҳо).
- Идоракунии давраи ҳаёт (омодасозӣ, истифода, анҷом додан).
- Конфигуратсия: Бинҳо тавассути XML, annotations (
@Component,@Service,@Repository,@Controller,@Bean) ё конфигуратсияи асоси Java муайян карда мешаванд. - Ҳолатҳо: Бинҳо аксар singleton-ҳо дар контексти контейнери Spring ба таври пешфарз мебошанд, аммо метавонанд дигар ҳудудҳо (scope): prototype, request, session ва global session дошта бошанд.
Масалан барои муайян кардани бийн бо истифода аз annotation @Component:
// Синф, ки контейнер Spring онро ҳамчун бийн мешиносад
@Component
public class MyService {
// Вобастагӣ, ки Spring ворид мекунад
private final MyRepository myRepository;
// Конструктор барои ворид кардани вобастагӣ
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
public void doSomething() {
myRepository.getData();
}
}
Масалан барои муайян кардани бийн бо конфигуратсияи асоси Java:
// Класси конфигуратсия
@Configuration
public class AppConfig {
// Метод, ки бийн-ро муайян мекунад
@Bean
public MyService myService(MyRepository myRepository) {
return new MyService(myRepository);
}
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}
Бинҳо сохтори асосии барномаи Spring-ро ташкил медиҳанд, кафолат медиҳанд, ки компонентҳо бо ҳам пайваст ва идора карда шаванд.