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

Как выполнить специфичную бизнес-логику на старте приложения в Spring

В Spring есть несколько способов выполнить логику при старте:

  1. @PostConstruct - метод выполнится после инициализации бина:
java
@Service
public class StartupService {
    @PostConstruct
    public void init() {
        // бизнес-логика
    }
}
  1. Реализация ApplicationRunner/CommandLineRunner:
java
@Component
public class AppStartupRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) {
        // выполнится после полного поднятия контекста
    }
}
  1. События контекста - можно слушать ContextRefreshedEvent:
java
@Component
public class StartupListener {
    @EventListener
    public void handleContextRefresh(ContextRefreshedEvent event) {
        // логика
    }
}

Важно:

  • @PostConstruct выполняется раньше ApplicationRunner
  • Для асинхронного выполнения можно добавить @Async
  • Обрабатывайте исключения, чтобы не упало всё приложение
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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