13

classpath:/some/path/to/resourceURLプロトコルを使用してランタイムクラスパスから直接構成ファイルやその他のリソースを読み取るSpringコードを見てきました。

これはSpringコンストラクトですか、それともJavaコンストラクトですか?

この質問以外にドキュメントが見つかりません-JavaのクラスパスからリソースをロードするためのURL。どちらの方法も示していません。

Java構造の場合、誰かがその公式ドキュメントを教えてもらえますか?

4

2 に答える 2

13

さて、あなたはいつでも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と言います)

于 2012-08-17T13:20:07.687 に答える
6

クラスパス:春に固有です。Springのリソース解決メカニズム(つまりPathMatchingResourcePatternResolver、または他の実装)は、"classpath:"および「classpath *:」プレフィックスについて認識しています。

それを受け取り、オブジェクトに解決します。オブジェクトはたまたまスプリングインターフェイスClassPathResourceを実装します。Resource

Resourceとりわけ、インターフェースには、それgetInputStream()がどのタイプのリソースであるかを意識することなく、コンテンツを取得するために使用できるメソッドがあります。

これは、URLプロトコル処理とは完全に独立しているため、必ずしもこれをプロトコルハンドラーとして直接追加できるとは限りません。

ClassPathResourceただし、プロトコルハンドラーの一部としてクラス自体を使用できる場合があります。

于 2012-08-17T15:33:22.023 に答える