Встречается на собеседованиях • сегодня

Как создать ленивый Bean в Spring

В Spring ленивая инициализация бина достигается через аннотацию @Lazy. По умолчанию бины создаются при старте контекста, но с @Lazy инициализация откладывается до первого обращения.

Варианты использования:

  1. На уровне класса:
java
@Lazy
@Service
public class MyService {
    // ...
}
  1. На уровне конфигурации:
java
@Configuration
public class AppConfig {
    @Bean
    @Lazy
    public MyBean myBean() {
        return new MyBean();
    }
}
  1. При инъекции:
java
@Autowired
@Lazy
private MyService myService;

Особенности:

  • Для бинов с областью видимости prototype @Lazy работает всегда
  • Уменьшает время старта приложения
  • Может маскировать проблемы с циклическими зависимостями
  • Первое обращение к бину будет медленнее из-за инициализации
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы