首页 > 解决方案 > Spring Boot 类路径:vs 相对路径

问题描述

在 Spring Boot 中,要访问资源,例如myresource.json,我可以同时使用两者classpath:或相对路径,例如./myresource.json

有什么区别?我应该使用哪一个?

标签: springspring-mvcspring-boot

解决方案


当您调用getResource()特定的应用程序上下文,并且指定的位置路径没有特定的前缀(如./myresource.json)时,您将获得适合该特定应用程序上下文的资源类型。

如果getResource()对 ClassPathXmlApplicationContext 实例执行,它将返回一个ClassPathResource. 如果对一个FileSystemXmlApplicationContext实例执行相同的方法,您将返回一个FileSystemResource. 对于 a WebApplicationContext,你会得到 a ServletContextResource,依此类推。因此,您可以以适合特定应用程序上下文的方式加载资源。

另一方面,您也可以通过指定特殊的: 前缀来强制ClassPathResource使用,而不管应用程序上下文类型如何。classpath

请参阅此文档


推荐阅读