Sobes.tech
Back to questions
Junior
11

Как выполнить код после того, как Spring заинжектировал все зависимости бина?

Companies where asked
ИП Ганус Александр Андреевич

Answer from AI

sobes.tech AI

В Spring, чтобы выполнить код после того, как все зависимости бина были заинжектированы, можно использовать интерфейс InitializingBean или аннотацию @PostConstruct.

Пример с @PostConstruct:

import javax.annotation.PostConstruct;
import org.springframework.stereotype.Component;

@Component
public class MyBean {

    @PostConstruct
    public void init() {
        // Этот метод вызовется после инъекции всех зависимостей
        System.out.println("Все зависимости заинжектированы, можно выполнять инициализацию");
    }
}

Альтернативно, можно реализовать интерфейс InitializingBean и переопределить метод afterPropertiesSet():

import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

@Component
public class MyBean implements InitializingBean {

    @Override
    public void afterPropertiesSet() throws Exception {
        // Код, который выполнится после инъекции зависимостей
    }
}

Оба способа гарантируют, что код выполнится после того, как Spring завершит инъекцию всех зависимостей в бин.