Когда я впервые начал изучать Spring, все было настроено в файле applicationContext.xml. Затем, когда я начал читать книги специально в более поздних версиях Spring, они все сделали конфигурацию в отдельных XML файлах, таких как myapp-servlet-xml, myapp-security.xml, myapp-service.xml и т.д., путем настройки contextConfigLocation в файле web.xml. Так, например, код, который я выполнял вместе, имел это как contextConfigLocation:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/myapp-servlet.xml
/WEB-INF/myapp-data.xml
</param-value>
</context-param>
Во всяком случае, в последнее время я столкнулся с проблемой конфигурации (которую помогли мне люди из StackOverflow), что было связано с этим разделением. Для примеров из этих книг не было файла applicationContext.xml, а позже, когда я попытался добавить автоматическое сканирование и аннотации к приложению, это вызвало проблемы. Я попытался переместить все в applicationContext.xml и покончить с другими файлами, и это решило проблему. Ничего другого не изменилось, я просто поместил все в applicationContext.xml.
Итак, это, наряду с комментариями других, привело ко мне понять, что даже если вы не создаете applicationContext.xml, он все еще используется и является верхним уровнем какой-либо иерархии конфигурации. Я надеюсь, что кто-то еще может объяснить мне, как все это работает, потому что я нигде не встречал никаких объяснений.
Так, например, если я помещаю определенный контекст: теги компонентного сканирования в файлы конфигурации, которые ниже applicationContext.xml, это может привести к тому, что определенные классы не будут отсканированы. Вещи такого характера. Я не понимаю приоритет и что нужно делать, чтобы убедиться, что он видел приложение широко и так далее. Если кто-нибудь может ясно объяснить это или указать мне на ресурс, который объясняет это, я был бы очень благодарен вам, спасибо. Надеюсь, то, что я прошу, имеет смысл.