classpath & classpath*
来源:互联网 发布:美国原油库存eia数据 编辑:程序博客网 时间:2024/06/15 18:13
- applicationContext.xml
这个文件在项目是非构建工具构建时,一般是放在 /WEB-INF/ 下面,所以在web.xml 里面配置是这样的。
<context-param> <param-name>contextConfigLocation</param-name> <param-value>applicationContext.xml</param-value> </context-param>
如果你有多个文件,可以这样做:
<context-param> <param-name>contextConfigLocation</param-name> <param-value> applicationContext.xml applicationContext2.xml applicationContext3.xml </param-value> </context-param>
但是一般建议是:只把applicationContext.xml 放在这里,其他的放入applicationContext.xml 里面:
<import resource="applicationContext2.xml" /> <import resource="applicationContext3.xml" />
note: 这里是相对路径
随着项目的不断增长,会出现 前端和后端分离的情况 ,后端dao和service 是通过jar包来引入,那么原来引入xml文件的方式 也要发生变化:
<import resource="classpath:applicationContext2.xml" /> <import resource="classpath:applicationContext3.xml" />
这个方式是使用classLoader(WebAppClassLoader) 来加载
在 ClasspathResource 里面 可以见到:
@Override public InputStream getInputStream() throws IOException { InputStream is; if (this.clazz != null) { is = this.clazz.getResourceAsStream(this.path); } else if (this.classLoader != null) { is = this.classLoader.getResourceAsStream(this.path); } else { is = ClassLoader.getSystemResourceAsStream(this.path); } if (is == null) { throw new FileNotFoundException(getDescription() + " cannot be opened because it does not exist"); } return is; }
note: 这种方式只会去获取最先匹配路径的classpath ,然后就
还用一种是引入方式是:
<import resource="classpath*:applicationContext2.xml" />
note: 这个会去匹配所有符合 applicationContext2.xml 路径的classpath , 就可以获取多个 ,如果多个xml 里面有多个name相同的 bean, 后依赖的jar包里面的bean Value 会覆盖掉前面的。
这样就可以将controller层 需要从jar包 引入的配置文件 统一配成(/AAAA/bbb.xml) 这样就可以在controller 层里面写成这样。(但在公司实际项目中 我们会根据项目名而命令不同的配置文件,比如dao层, xxxx-dao.xml ,所以目前只是了解。)
<import resource="classpath*:AAAA/bbb.xml" />
关于这个Resource 的文档解释 看 官方文档
另参考 此文章
0 0
- classpath
- classpath
- CLASSPATH
- classpath
- classpath
- classpath
- classpath
- classpath
- classpath
- CLASSPATH
- classpath
- classpath
- CLASSPATH
- classpath
- classpath
- classpath
- CLASSPATH
- classpath
- 最大子段和暴力求解
- DbUtils在SQLite中的应用
- 小白书隐式图搜索之八数码问题
- 递归
- Unity物理引擎:Charactor Controller简介
- classpath & classpath*
- 10026 - Shoemaker's Problem(贪心)
- LeetCode OJ4 Median of Two Sorted Arrays 小结
- Eclipse启动Weblogic控制台显示乱码解决办法
- 最长公共子序列
- NSDate的一个分类,判断是否是今天,昨天,今年,获得与当前时间的差距,返回一个只有年月日的日期
- hdu4099(trie树,斐波那契数列)
- B\S备忘录28——EF强行多租户效果?谁来进谁的库
- C++中不能被声明为虚函数的函数