Как зарегистрировать слушателя в Spring без дескриптора развертывания

Я медленно погружаюсь в мир Java с помощью Spring Framework (4.1.0) и нуждаюсь в вашей помощи со слушателями.

Я создал приложение без дескриптора развертывания, вся конфигурация, связанная с Spring, управляется в @Configuration аннотированных классах. Все работает, но я не могу найти способ зарегистрировать слушателей.

Вопрос: как я могу зарегистрировать слушателей в Spring (4.1.0) на основе аннотированных классов Java @Configuration?


person xyz    schedule 13.09.2014    source источник
comment
stackoverflow.com/a/30908951/1901067   -  person David    schedule 15.11.2019


Ответы (1)


Вы делаете это с помощью WebApplicationInitializer. @Configuration предназначен для конфигураций Spring, а не для дескриптора развертывания.

public class MyWebAppInitializer implements WebApplicationInitializer {
    @Override
    public void onStartup(ServletContext container) {
        container.addListener(...);
        ...
    }
}

Дополнительные пояснения можно найти здесь: Как использовать Spring WebApplicationInitializer.

person Bogdan    schedule 13.09.2014
comment
спасибо за объяснение по этому вопросу. В моем приложении я использую класс, унаследованный от AbstractAnnotationConfigDispatcherServletInitializer, в качестве инициализатора, поэтому я могу зарегистрировать там слушателя из того, что я проверил. - person xyz; 13.09.2014
comment
Да, AbstractAnnotationConfigDispatcherServletInitializer реализует WebApplicationInitializer. - person Bogdan; 13.09.2014
comment
Для моего приложения SpringBoot мне не нужно было использовать этот подход addListener, поскольку, когда я помещал этот код, он не выполнялся. Любая подсказка, почему это так? - person yathirigan; 10.03.2015