Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: bean, lifecycle

В какой момент вызываются @PostConstruct и @PreDestroy?

Вопрос проверяет понимание жизненного цикла бина и точек инициализации и уничтожения объектов.

Короткий ответ

@PostConstruct вызывается после создания бина и внедрения всех зависимостей. @PreDestroy вызывается перед уничтожением бина и завершением контекста. Эти методы позволяют выполнить инициализацию и освобождение ресурсов. Они являются частью жизненного цикла бина.

Длинный ответ

Spring управляет не только созданием объектов, но и их жизненным циклом.

Жизненный цикл бина

Определение:
Жизненный цикл бина — это последовательность этапов от создания объекта до его уничтожения контейнером.

Упрощенная последовательность:

  1. создание объекта

  2. внедрение зависимостей

  3. инициализация

  4. использование

  5. уничтожение

@PostConstruct

@PostConstruct используется для инициализации бина.

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

  • вызывается один раз

  • все зависимости уже внедрены

  • подходит для проверки состояния и подготовки ресурсов

@PostConstruct
public void init() {
    // инициализация ресурса
}

@PreDestroy

@PreDestroy вызывается перед уничтожением бина.

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

  • вызывается при закрытии контекста

  • используется для освобождения ресурсов

  • не вызывается при аварийном завершении JVM

@PreDestroy
public void cleanup() {
    // освобождение ресурсов
}

Важные нюансы

  • работают только для бинов, управляемых Spring

  • не вызываются для prototype-бинов при уничтожении

  • не должны содержать тяжелую логику

Краткий вывод

@PostConstruct отвечает за инициализацию бина после внедрения зависимостей, а @PreDestroy — за корректное завершение его работы перед уничтожением.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Spring

    Spring

Ключевые слова

#bean

#lifecycle

Подпишись на Java Developer в телеграм