温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spring boot如何解决加载资源路径配置和classpath问题

发布时间:2021-07-28 13:52:22 来源:亿速云 阅读:847 作者:小新 栏目:编程语言

这篇文章主要介绍spring boot如何解决加载资源路径配置和classpath问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1、spring boot默认加载文件的路径:

  1. /META-INF/resources/

  2. /resources/

  3. /static/

  4. /public/

我们也可以从spring boot源码也可以看到:

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { 
    "classpath:/META-INF/resources/", 
    "classpath:/resources/", 
    "classpath:/static/", 
    "classpath:/public/" };

2、Classpath含义

  1. 存放各种资源配置文件 eg.init.properties log4j.properties struts.xml

  2. 存放模板文件 eg.actionerror.ftl

  3. 存放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都包括如下目录:

我知道的有:

  1. %tomcat%/lib

  2. web-inf/lib

  3. web-inf/classes

环境变量里的classpath

总结:classpath这是一个定位资源的入口.classpath下 lib的优先级大于classes;

以上是“spring boot如何解决加载资源路径配置和classpath问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI