Создать экземпляр → заполнить свойства → Поддерживаемые обратные вызовы → BeanPostProcessor.postProcessBeforeInitialization → @PostConstruct/afterPropertiesSet → BeanPostProcessor.postProcessAfterInitialization → bean готов → @PreDestroy при закрытии контекста (только для одиночных объектов). BeanPostProcessor — это точка расширения, лежащая в основе создания прокси-сервера AOP и внедрения @Autowired/@Value.
Пример
publicinterfaceOrderRepositoryextendsJpaRepository {
ListfindByCustomerIdAndStatus(String customerId, OrderStatus status);
@Query("select o from Order o join fetch o.lines where o.id = :id")OptionalfindByIdWithLines(@Param("id") Long id);
}
Итог
Создать экземпляр → заполнить свойства → Поддерживаемые обратные вызовы → BeanPostProcessor.postProcessBeforeInitialization → @PostConstruct/afterPropertiesSet → BeanPostProcessor.postProcessAfterInitialization → bean готов → @PreDestroy при закрытии контекста (только для одиночных объектов).
Пройдите через жизненный цикл bean-компонента Spring от создания эк… · Sobeso