当我第一次开始学习Spring时,在applicationContext.xml文件中配置了一些东西。然后当我开始专门阅读更新版本的spring时,他们都在单独的XML文件中完成了配置,例如myapp-servlet-xml,myapp-security.xml,myapp-service.xml等。在web.xml文件中配置contextConfigLocation。因此,例如,我一直关注的代码就是它的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下面的配置文件中,则可能导致某些类无法扫描。那种性质的东西。我不明白优先级和必须去哪里确定应用程序的广泛性等等。如果有人能够清楚地解释它或指向我解释它的资源我会非常感激,谢谢。希望我所要求的是有道理的。
答案 0 :(得分:85)