Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java URL协议:类路径:/?_Java_Spring_Classpath - Fatal编程技术网

Java URL协议:类路径:/?

Java URL协议:类路径:/?,java,spring,classpath,Java,Spring,Classpath,我看到一些Spring代码使用classpath:/some/path/to/resourceURL协议直接从运行时类路径读取配置文件和其他资源 这是Spring构造还是Java构造 除了这个问题之外,我找不到任何文件-,这两个问题都没有说明 如果它是一个Java构造,有人能给我指一下它的官方文档吗?你可以随时注册URL处理程序。Java还有一个文件:///和jar:handler。默认情况下,class.getResource也将从类路径读取 显然,这是一个春天的特点 “您可以在JDK的RT

我看到一些Spring代码使用
classpath:/some/path/to/resource
URL协议直接从运行时类路径读取配置文件和其他资源

这是Spring构造还是Java构造

除了这个问题之外,我找不到任何文件-,这两个问题都没有说明


如果它是一个Java构造,有人能给我指一下它的官方文档吗?

你可以随时注册URL处理程序。Java还有一个文件:///和jar:handler。默认情况下,class.getResource也将从类路径读取

显然,这是一个春天的特点

“您可以在JDK的RT.JAR文件中看到这些标准处理程序和相关的实现类。查找完全限定名以sun.net.www.protocol开头的类。例如,类sun.net.www.protocol.http.Handler定义http协议处理程序。类sun.net.www.protocol.ftp.Handler定义ftp协议处理程序类。“

线程“main”java.net.MalformedURLException:未知协议:类路径中出现异常
(说java 1.6)

类路径:是特定于spring的。spring的资源解析机制(即
PathMatchingResourcePatternResolver
或其他组件)知道
“classpath:”
和“classpath*:”前缀

它接受这一点并解析为
ClassPathResource
对象,这些对象恰好实现了springs
Resource
接口

Resource
接口还有一个
getInputStream()
方法,可以用来获取内容,而不必知道它是什么类型的资源

这与任何URL协议处理完全不同,因此您不一定能够直接将其添加为协议处理程序


但是,您可以将
ClassPathResource
类本身用作协议处理程序的一部分。

很酷的提示!我不知道您可以注册自己的处理程序(+1)!但是你知道
classpath
是Spring定义/注册的URL处理程序还是Java附带的吗?再次感谢!我认为这是Spring的一个内置功能(查看那里的链接),我建议阅读
ResourceLoader
抽象: