Ответ
@PostConstruct — это аннотация JSR-250 (Java Common Annotations), которая помечает метод, выполняемый после внедрения зависимостей (DI) и перед готовностью бина к использованию.
Основное назначение:
- Инициализация ресурсов (кэшей, подключений).
- Валидация конфигурации бина.
- Выполнение предварительных вычислений.
Ключевые правила:
- Метод должен быть
voidи не принимать параметров. - Вызывается только один раз за жизненный цикл бина.
- Является альтернативой интерфейсу
InitializingBeanили атрибутуinit-methodв XML.
Пример использования:
@Service
public class CacheService {
private Map<String, Object> cache;
@PostConstruct
public void initCache() {
this.cache = new ConcurrentHashMap<>();
// Предзагрузка данных в кэш
cache.put("config", loadConfiguration());
}
}
Важно: Метод @PostConstruct гарантированно выполняется после полного завершения инъекции всех зависимостей (@Autowired, @Inject).