Spring的applicationContext和spring-mvc.xml的区别

阅读更多

applicationcontext.xml一般里面是配置dataSource以及相关的IOC容器中存放的相关bean。而spring-mvc.xml一般配置一些与web相关的东西。两个东西没什么关联。

 

在配置的时候,最好分开配置。在spring-mvc中一般只扫描controller层,配置为

 


   

 在其他spring配置中扫描其他的包,注意不要包含controller。

 

另外,不要配置了又配置在实现的时候包含了。在实际编程过程中,只需要在xml配置文件中配置就可以了。

 

 

applicationContext是mvc context的父容器,mvc context可以引用applicationContext的bean,而applicationContext无法引用到mvc的bean,如果你这样配,有些东西如果applicationContext需要,它就找不到了,所以还不如全放到applicationContext中。

 

spring查找bean,会现在当前context中查找,如果没有满足的,再到父容器查找, 

 

applicationContext是在web.xml中配置的ContentLoader监听器启动的,当xml启动时加载,并按照一个约定的key放在java的ServletContext中,然后mvc 的servlet初始化时,先从ServletContext中按照约定的key取出来,以它为父容器,去创建mvc的容器。 

 

再说,两个不同的spring context,是不会有冲突的,是可以存在相同的bean定义的,只不过优先查找当前context,不存在才往上找。

 

你可能感兴趣的:(Spring的applicationContext和spring-mvc.xml的区别)