spring boot加载资源路径配置和classpath问题解决
1、springboot默认加载文件的路径:
- /META-INF/resources/
- /resources/
- /static/
- /public/
我们也可以从springboot源码也可以看到:
privatestaticfinalString[]CLASSPATH_RESOURCE_LOCATIONS={
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"};
2、Classpath含义
- 存放各种资源配置文件eg.init.propertieslog4j.propertiesstruts.xml
- 存放模板文件eg.actionerror.ftl
- 存放class文件对应的是项目开发时的src目录编译文件
总结:这是一个定位资源的入口
一般java项目中classpath存在与WEB-INFO/目录。
当我们需要某个class时,系统会自动在CLASSPATH里面搜索,如果是jar,就自动从jar里面查找,如果是普通的目录,则在目录下面按照package进行查找。
但与PATH不同的是,默认的CLASSPATH是不包含当前目录的,这也是CLASSPATH里面要包含一个点的道理了。
Tomcat下的Web应用有两个预置的classpath:WEB-INF/classes和WEB-INF/lib启动项目,项目就会加载这两个目录里的数据。这是war包的规范.要改变预置的classpath比较麻烦,在Tomcat的配置文件里没有发现类似的配置,要实现自己的classloader才能达到目的。
一个在tomcat中运行的web应用.它的classpath都包括如下目录:
我知道的有:
- %tomcat%/lib
- web-inf/lib
- web-inf/classes
环境变量里的classpath
总结:classpath这是一个定位资源的入口.classpath下lib的优先级大于classes;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短