Sobes.tech
Back to questions
Junior — Middle
52

Каким образом реализовать механизм ленивой инициализации компонента в Spring?

Companies where asked
Firecode

Answer from AI

sobes.tech AI

В Spring механизм ленивой инициализации позволяет создавать бины не при старте контекста, а только при первом обращении к ним. Это помогает оптимизировать время запуска приложения и экономить ресурсы.

Для реализации ленивой инициализации компонента можно использовать аннотацию @Lazy:

@Component
@Lazy
public class MyComponent {
    // код компонента
}

Или применить @Lazy к конкретному бину в конфигурации:

@Bean
@Lazy
public MyComponent myComponent() {
    return new MyComponent();
}

Также можно включить ленивую инициализацию для всего контекста в настройках Spring Boot, добавив в application.properties:

spring.main.lazy-initialization=true

Это заставит Spring создавать все бины лениво, по мере необходимости.