最近在学习SSM,虽然spring,springMVC,Mybatis三个框架单独使用没有问题,但是看整合的方式似乎并不固定,这点让我感到很迷惑,也许是我理解有问题。
我注意到不同的整合方式会用到不同的配置文件,web.xml和springMVC.xml是肯定用到了的,并且这两个文件配置的内容也基本相同。但是剩下的配置文件有的会用SqlMapConfig.xml和applicatonContext.xml,其中applicatonContext还会按配置的内容分成几个配置文件,有的则只用spring-mybatis.xml。
这两种配置方式的区别是为了应对不同的适用场景吗?这两种不同的配置方式是出于什么样的目的呢?
本质上,web.xml 只是为了向 Tomcat 等 Server 中注入过滤器、(针对 Server 的监听器)等等。
而无论是 springMVC.xml 还是 applicationContext.xml,包括 spring-.xml 都属于 Spring 的配置文件,其实怎么叫都没关系,因为可以在 web.xml 里设定配置文件的路径(或是直接指定文件列表)。
而 Spring 的配置文件本质上只是在定义一堆 Bean,然后设置它们的初始化依赖或一些属性、方法设定。
所以其实没什么配置方式的区别,本质上就只有 Server 的配置文件和 Spring 的配置文件还有一些第三方包所需要的配置文件(比如 ORM 的配置文件)三个东西,你要是乐意可以把所有的 Spring 配置(Spring MVC 配置、数据库 (
dataSource
、session
之类 ) 配置乃至其他东西)都放在一个巨大无比的 applicationContext.xml 里让 Spring 去读取。所以回到你的问题,这完全取决于你想用什么分类形式,常见的就是 spring-模块.xml,其中模块包括核心 (
core
)、数据库(db
)等等。第一个链接里的 applicationContext-XX 其实也就是 spring-XXX。
个人之见,不一定完全正确,欢迎讨论,有错误还请指正!