classpath:/some/path/to/resource
URLプロトコルを使用してランタイムクラスパスから直接構成ファイルやその他のリソースを読み取るSpringコードを見てきました。
これはSpringコンストラクトですか、それともJavaコンストラクトですか?
この質問以外にドキュメントが見つかりません-JavaのクラスパスからリソースをロードするためのURL。どちらの方法も示していません。
Java構造の場合、誰かがその公式ドキュメントを教えてもらえますか?
classpath:/some/path/to/resource
URLプロトコルを使用してランタイムクラスパスから直接構成ファイルやその他のリソースを読み取るSpringコードを見てきました。
これはSpringコンストラクトですか、それともJavaコンストラクトですか?
この質問以外にドキュメントが見つかりません-JavaのクラスパスからリソースをロードするためのURL。どちらの方法も示していません。
Java構造の場合、誰かがその公式ドキュメントを教えてもらえますか?
さて、あなたはいつでもURLハンドラーを登録することができます。Javaには、file:///およびjar:ハンドラーもあります。また、class.getResourceはデフォルトでクラスパスから読み取られます。
http://code.google.com/p/madura-classpath-protocol-handler/
どうやらそれは春の特徴です。
「これらの標準ハンドラーと関連する実装クラスは、JDKのRT.JARファイルで確認できます。完全修飾名がsun.net.www.protocolで始まるクラスを探します。たとえば、クラスsun.net.www。 protocol.http.HandlerはHTTPプロトコルハンドラーを定義します。クラスsun.net.www.protocol.ftp.HandlerはFTPプロトコルハンドラークラスを定義します。」
http://java.sun.com/developer/onlineTraining/protocolhandlers/
「スレッド「メイン」の例外java.net.MalformedURLException:不明なプロトコル:クラスパス」(java 1.6と言います)
クラスパス:春に固有です。Springのリソース解決メカニズム(つまりPathMatchingResourcePatternResolver
、または他の実装)は、"classpath:"
および「classpath *:」プレフィックスについて認識しています。
それを受け取り、オブジェクトに解決します。オブジェクトはたまたまスプリングインターフェイスClassPathResource
を実装します。Resource
Resource
とりわけ、インターフェースには、それgetInputStream()
がどのタイプのリソースであるかを意識することなく、コンテンツを取得するために使用できるメソッドがあります。
これは、URLプロトコル処理とは完全に独立しているため、必ずしもこれをプロトコルハンドラーとして直接追加できるとは限りません。
ClassPathResource
ただし、プロトコルハンドラーの一部としてクラス自体を使用できる場合があります。