Sobes.tech
Junior

Как да изпълним кода след като Spring е инжектирал всички зависимости на бина?

sobes.tech AI

Отговор от 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 завърши инжектирането на всички зависимости в бина.