Я конвертирую контроллер в более новую версию аннотации. В старой версии я использовал для указания метода инициализации в springmvc-servlet.xml, используя:
<beans>
<bean id="myBean" class="..." init-method="init"/>
</beans>
Как я могу указать метод инициализации, используя версию аннотации?
java
spring
annotations
controller
Krt_Malta
источник
источник
Ответы:
Ты можешь использовать
источник
В качестве альтернативы вы можете заставить свой класс реализовать
InitializingBean
интерфейс для предоставления функции обратного вызова (afterPropertiesSet()
), которую ApplicationContext будет вызывать при создании bean-компонента.источник
Есть несколько способов перехватить процесс инициализации в Spring. Если вам нужно инициализировать все beans и автоматически подключать / вводить их, я знаю как минимум два способа, которые обеспечат это. Я тестировал только второй, но считаю, что оба работают одинаково.
Если вы используете @Bean, вы можете ссылаться на initMethod, например.
Если вы используете @Component, вы можете аннотировать @EventListener следующим образом.
В моем случае у меня есть устаревшая система, в которой я сейчас использую IoC / DI, где Spring Boot - это выбранный фреймворк. Старая система привносит в таблицу множество циклических зависимостей, и поэтому я должен часто использовать сеттер-зависимости. Это вызвало у меня головную боль, поскольку я не мог доверять @PostConstruct, поскольку автоматическое подключение / инъекция сеттером еще не было выполнено. Порядок - конструктор, @PostConstruct, затем автоматические сеттеры. Я решил это с помощью аннотации @EventListener, которая будет запускаться последней и в «одно и то же» время для всех beans. В примере также показана реализация InitializingBean.
У меня есть два класса (@Component), которые зависят друг от друга. В этом примере классы выглядят одинаково, отображая только один из них.
Это вывод журнала, показывающий порядок вызовов при запуске контейнера.
Как видите, @EventListener запускается последним после того, как все будет готово и настроено.
источник
источник