Основное исследование в этой статье состоит в том, чтобы получить все бобы с конкретными аннотациями после того, как весна начинается, следующим образом.
Недавно я столкнулся с бизнес -сценарием в проекте, который состоит в том, чтобы получить все бобы, которые реализуют конкретный объект интерфейса во всех бобах после запуска пружинного контейнера. Первое, о чем я подумал, это ApplicationContextaware. В SetApplicationContext я получил все бобы через CTX. Позже я обнаружил, что логика казалась неправильной. Этот метод не был реализован после того, как все бобы были инициализированы. Позже я попробовал это, чтобы увидеть, есть ли слушатели и тому подобное, и нашел хорошую вещь ApplicationListener, а затем Baidu использовал ApplicationListener. Оказалось, что было много примеров, поэтому я запишу свои примеры.
Это очень просто. Просто реализуйте интерфейс ApplicationListener<ContextRefreshedEvent> , а затем @component класс реализации. Код заключается в следующем:
@Component public class contextrefreshedlistener реализует ApplicationListener <contextrefreshedevent> {@override public void onapplicationEvent (contextrefreshedevent event) {// Корневой контейнер является контейнером пружины, if (event.getPplicationContext (). GetParent () == null) {string. Event.getApplicationContext (). GetBeanSwithannotation (imobile.class); для (объект Bean: beans.values ()) {System.err.println (bean == null? Среди них все коллекции бобов с конкретными аннотациями получаются через event.getApplicationContext().getBeansWithAnnotation , а затем вытекает через все бобы для реализации бизнес -сценариев.
Резюме и мысли: такая функция может инициализировать параметры системы, получить список всех сервисов интерфейса в системе, а также другие функции, которые необходимо инициализировать после начала пружины.
Давайте продлим: в дополнение к вышеупомянутым событиям после запуска, есть три других события
Закрывается при закрытии контейнера, запускается запускается, когда контейнер запускается, а остановка вызывается, когда контейнер закрыт.
Я начал и остановился через Tomcatserver, и видел только освеженные и закрытые. Я не знаю почему, поэтому я буду продолжать учиться, если у меня будет время.
Выше приведено все содержание этой статьи о получении всех кодов экземпляров бобов с конкретными аннотациями после начала весны. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!