Web.xml中自动扫描Spring的配置文件及resource时classpath*:与classpath:的区别
一、Web.xml中自动扫描Spring的配置文件(applicationContext.xml)
1,首先在web.xml中配置监听器listener,让Spring进行自动获取。具体加入的代码如下:
<!-- 配置监听器listener,让Spring进行自动获取 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
2,只要启动服务这个配置就会默认的去加载我们的配置文件,自动的将里面的bean都给初始化了。
applicationContext.xml文件放在WEB-INF下,代码如下:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>WEB-INF/applicationContext*.xml</param-value> </context-param>
applicationContext.xml文件放在src下,代码如下:
<context-param> <param-name>contextConfigLocation</param-name> <!-- 加入配置文件放在了src下的,命名规则为:applicationContext.xml形式,则可以从以下方式配置--> <param-value>classpath:applicationContext.xml</param-value> </context-param>
applicationContext.xml文件放在src/config下,代码如下:
<context-param> <param-name>contextConfigLocation</param-name> <!-- 加入配置文件放在了src下的,命名规则为:applicationContext.xml形式,则可以从以下方式配置--> <param-value>classpath:config/applicationContext.xml</param-value> </context-param>
3,服务器启动的时候就会自动的去classpa也就是src目录下找所有的以:applicationContext.xml文件并将它们初始化。
二、web.xml中classpath:和classpath*:的区别
1,classpath:只会到你的class路径中查找找文件;
2,classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.
三、注意事项
首先与Spring相关的配置文件必须要以"applicationContext-"开头,要符合约定优于配置的思想,这样在效率上和出错率上都要好很多。
最好把所有Spring配置文件都放在一个统一的目录下,如果项目大了还可以在该目录下分模块建目录;
在web.xml中的配置如下:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:**/applicationContext-*.xml</param-value> </context-param> <!-- "**/"表示的是任意目录 "**/applicationContext-*.xml"表示任意目录下的以"applicationContext-"开头的XML文件 --> <!-- 你自己可以根据需要修改。最好把所有Spring配置文件都放在一个统一的目录下,如:--> <!-- Spring 的配置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/spring/applicationContext-*.xml</param-value> </context-param>
作者:整合侠
链接:http://www.cnblogs.com/lizm166/p/8301318.html
来源:博客园
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。