Junior
24
Spring: @Component аннотациясымен белгіленген бином екі жерге енгізілсе, қанша экземпляр құрылады? Әр енгізу үшін жаңа экземплярды қалай жасауға болады?
Сұралған компаниялар
ИП Ганус Александр Андреевич
AI-дан жауап
sobes.tech AI
Если бин помечен аннотацией @Component и инжектируется в два места, по умолчанию Spring создаст один синглтон-экземпляр этого бина и будет использовать его везде.
Чтобы создавать новый экземпляр бина при каждой инъекции, нужно изменить область видимости (scope) бина на prototype:
@Component
@Scope("prototype")
public class MyBean {
// ...
}
В этом случае при каждой инъекции Spring будет создавать новый экземпляр бина.
Важно: при использовании prototype бинов в синглтон-бинах нужно учитывать, что Spring не будет автоматически создавать новые экземпляры при каждом вызове, а только при создании самого синглтон-бина. Для динамического получения новых экземпляров можно использовать ObjectFactory или Provider.