引言:
Spring的控制反转和依赖注入是我在项目中使用频率最大的,但是Spring整合其他组件的能力也不得不让人感叹,小到log、quartz、velocity,大到Mybatis,Struts2等其他框架,Spring都可以在尽量解耦合的情况下将他们整合到同一个项目中,这就出现了另一个问题:
过多的xml配置项,applicationContext中显得混乱不堪!
编码习惯相对好一点的中间会留有空格,相对还好看一点,
编码习惯差一点的,根本分不清配置的是哪一个组件,没有可读性,容易犯错误。
错误就不在这里展示了。刚刚接触Spring的时候由于对配置不是很熟悉,本着试一试的心态来整合Struts2,、Mybatis等框架,导致问题多多,本身因为开始的时候没有使用Maven来管理jar包,加上配置繁多,本人又不甚熟悉,错误摸不着头脑。
解决方案:
具体做法:
1)对于Web项目
a)将某个组件所需要的spring xml配置内容写入到另一个xml配置文件中,配置文件的验证头就用最开始配置Spring主体时候的那一部分即可,根据组件配置的验证 需求再自行添加。
b)添加组件的Spring配置信息到这个单独出来的xml中。
c)在web.xml中配置能够读取多个Spring的xml配置信息
<!-- Spring监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- Spring配置文件位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring*.xml</param-value> </context-param>进行了这几步配置,就可以从多个xml中读取Spring的配置信息了,
注意:
web.xml配置中出现的 classpath* 和 classpath 的区别是:
classpath:只会到你所指定的class路径中查找文件
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找