プロパティファイルに以下のパスを設定しました。
C:/folder/file.xml
file:/folder/file.xml
Springアプリケーションコンテキストファイルで参照している上記の2つのパスの1つ。私の質問は何difference between these two paths
ですか?
ありがとう!
Windows では、両方とも同じディレクトリを指します。*nix ベースのシステムでは、最初のものは機能しません。したがって、2 番目はより普遍的であり、最初のものの代わりに使用する必要があります。
常に相対パスを使用することをお勧めします。使用しているプラットフォームやコンピューターに関係なく、アプリケーションの相対的なフォルダー構造が変わらないため、コードがより使いやすくなります。ただし、パスが正しい限り機能する絶対パスとは異なり、相対パスが正しい場合にのみ機能します。
C:/folder/file.xml
は完全修飾ファイル名
です は URI であり、ローカル ファイル用file:/folder/file.xml
である必要があります ネットワーク ファイル URI にアクセスする場合は使用されませんfile:///
file:/
file://
URI は Java だけのものではありません。file://
は、リソースが HTTP リソースなどではなくファイルであることを意味します。
ファイル プレフィックスは、クラスパス リソース、http または ftp リソースではなく、ファイルを探していることを Spring に知らせます。
UrlResource は java.net.URL をラップし、ファイル、HTTP ターゲット、FTP ターゲットなど、通常は URL 経由でアクセスできる任意のオブジェクトにアクセスするために使用できます。すべての URL には、次のような標準化された文字列表現があります。適切な標準化されたプレフィックスを使用して、ある URL タイプから別の URL タイプを示します。これには、ファイル システム パスにアクセスするための file:、HTTP プロトコルを介してリソースにアクセスするための http:、FTP を介してリソースにアクセスするための ftp などが含まれます。