Справка / объяснение иерархии конфигурации XML-файла Spring

Когда я впервые начал изучать 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, он все еще используется и является верхним уровнем какой-то иерархии конфигурации. Я надеюсь, что кто-то еще сможет объяснить мне, как все это работает, потому что я нигде не встречал никаких объяснений.

Так, например, если я помещу определенные теги context: component-scan в файлы конфигурации, расположенные ниже applicationContext.xml, это может привести к тому, что определенные классы не будут сканироваться. Вещи такого рода. Я не понимаю приоритета и того, что нужно делать, чтобы быть уверенным, что это будет видно по всему приложению и так далее. Если кто-то может четко объяснить это или указать мне на ресурс, который это объясняет, я был бы очень признателен, спасибо. Надеюсь, то, что я прошу, имеет смысл.

41
задан cardician 14 October 2011 в 22:36
поделиться