Встречается на собеседованиях • сегодня
Будет ли ленивым Bean с аннотацией Lazy, если он внедряется в другой Bean в Spring
Да, если бин помечен @Lazy, он будет инициализироваться только при первом обращении к нему, даже если внедряется в другой бин. Однако, если принимающий бин не ленивый, то при его создании Spring может инициализировать ленивый бин, если тот требуется для конструктора.
Пример:
java
@Configuration
public class AppConfig {
@Bean
@Lazy
public Service lazyService() {
return new Service();
}
@Bean
public Client client(Service service) { // service будет создан здесь
return new Client(service);
}
}Чтобы избежать этого, принимающий бин тоже нужно пометить @Lazy:
java
@Bean
@Lazy
public Client client(Service service) { // service создастся только при вызове client
return new Client(service);
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы