У меня есть проект, который включает в себя различные зависимости Spring.
'org.springframework:spring-core:4.3.2.RELEASE',
'org.springframework:spring-jdbc:4.3.2.RELEASE',
'org.springframework:spring-beans:4.3.2.RELEASE',
'org.springframework:spring-web:4.3.2.RELEASE'
... и множество других зависимостей.
При его развертывании в Tomcat 8.5.8 я вижу этоmessage ...
1 Spring WebApplicationInitializers detected on classpath
Сообщение соответствует сообщению в исходном коде Spring-Framework по адресу SpringServletContainerInitializer.java Из этого исходного кода и документов кажется очевидным, что
- Tomcat будет сканировать путь к классам для поиска неабстрактных классов с возможностью построения, которые реализуют WebApplicationInitializer и что SpringServletContainerInitializer создаст экземпляр каждого найденного класса.
- Некоторые библиотеки или зависимости могут включать в себя найденный и созданный экземпляр WebApplicationInitializer.
- Сам Spring включает в себя WebApplicationInitializer, но все они выглядят как Абстрактные.
Мой код не имеет WebApplicationInitializer.
Вопрос: Я хочу найти инициализатор, включенный в какую-то библиотеку, чтобы понять, какая библиотека включает его.
Подходы, которые приходят на ум, таковы...
Получить исходный код Spring-Framework или Tomcat.Поместите точку останова в SpringServletContainerInitializer или в класс ContextConfig Tomcat и проверьте, какие классы найдены и используются.
Взламывайте проект, убирая зависимости, пока не исчезнет WebApplicationInitializer.(сложный)
Разве нет лучшего (более быстрого) способа, т. е. включить какой-либо уровень ведения журнала?
Я пробовал несколькоподробные инструкции по регистрации в документах Tomcat и Spring безуспешны.
Я собираюсь получить исходный код Tomcat.Конечно, я чему-то научусь.