Ответ
После создания и внедрения зависимостей (dependency injection) бина в Spring вызывается его метод инициализации. Есть два основных способа его определить:
-
Аннотация
@PostConstruct(предпочтительный способ):import javax.annotation.PostConstruct; @Component public class DatabaseService { @PostConstruct public void init() { // Выполняется после инъекции всех зависимостей System.out.println("Bean is ready for use."); // Здесь обычно: загрузка кэша, проверка конфигурации, открытие соединений } }Почему предпочтительнее: Это стандарт JSR-250, который не привязывает ваш код к Spring API.
-
Реализация интерфейса
InitializingBean:import org.springframework.beans.factory.InitializingBean; @Component public class CacheManager implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { // Аналогично @PostConstruct this.loadCache(); } }
Порядок вызова: Конструктор -> Внедрение зависимостей (@Autowired) -> @PostConstruct / afterPropertiesSet().