我在属性文件中配置了以下路径。
C:/folder/file.xml
file:/folder/file.xml
我在我的 spring 应用程序上下文文件中引用的上述两个路径之一。我的问题是什么difference between these two paths
?
谢谢!
在 Windows 上,两者都指向同一个目录。在基于 *nix 的系统上,第一个不起作用。所以第二个更通用,应该用第一个代替。
使用相对路径总是更好的做法。它使代码更有用,因为应用程序的相对文件夹结构不会改变,无论您使用的是哪个平台或计算机。但它只在相对路径正确时才有效,不像绝对路径只要路径正确就有效。
C:/folder/file.xml
是一个完全限定的文件名
file:/folder/file.xml
是一个 URI,它应该file:///
用于本地文件,而不是file:/
file://
在访问网络文件 URI 时使用
URI 不仅仅是 Java 的东西。file://
表示资源是文件,而不是 HTTP 资源等。
文件前缀让 spring 知道正在寻找文件,而不是类路径资源、http 或 ftp 资源。
UrlResource 包装了 java.net.URL,可用于访问通常可通过 URL 访问的任何对象,例如文件、HTTP 目标、FTP 目标等。所有 URL 都具有标准化的字符串表示,例如适当的标准化前缀用于指示一种 URL 类型与另一种 URL 类型。这包括file:用于访问文件系统路径,http:用于通过HTTP协议访问资源,ftp:用于通过FTP访问资源等。