From 761c8c1757e0e197d488b2e1f5e065a98aeffcfc Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 26 Apr 2025 13:08:55 +0800 Subject: [PATCH] fix resource --- .../main/java/org/dromara/hutool/core/io/file/FileUtil.java | 2 +- .../org/dromara/hutool/core/io/resource/ResourceUtil.java | 2 +- .../main/java/org/dromara/hutool/core/net/url/UrlUtil.java | 4 ++++ .../org/dromara/hutool/core/io/resource/ResourceUtilTest.java | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java index 1914ea0f1..69fe9a34f 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileUtil.java @@ -314,7 +314,7 @@ public class FileUtil { } // 如果用户需要相对项目路径,则使用project:前缀 - if (path.startsWith("project:")) { + if (path.startsWith(UrlUtil.PROJECT_URL_PREFIX)) { return new File(path); } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/ResourceUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/ResourceUtil.java index c8e12656c..3f696b87a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/ResourceUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/resource/ResourceUtil.java @@ -243,7 +243,7 @@ public class ResourceUtil { */ public static Resource getResource(final String path) { if (StrUtil.isNotBlank(path)) { - if (path.startsWith(UrlUtil.FILE_URL_PREFIX) || FileUtil.isAbsolutePath(path)) { + if (StrUtil.startWithAny(path, UrlUtil.FILE_URL_PREFIX, UrlUtil.PROJECT_URL_PREFIX) || FileUtil.isAbsolutePath(path)) { return new FileResource(path); } } diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlUtil.java index f2657bcdd..8cdbe0324 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/net/url/UrlUtil.java @@ -55,6 +55,10 @@ public class UrlUtil { * 针对ClassPath路径的伪协议前缀(兼容Spring): "classpath:" */ public static final String CLASSPATH_URL_PREFIX = "classpath:"; + /** + * 针对project路径的伪协议前缀: "project:" + */ + public static final String PROJECT_URL_PREFIX = "project:"; /** * URL 前缀表示文件: "file:" */ diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/io/resource/ResourceUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/io/resource/ResourceUtilTest.java index b88edd122..b2c39bba3 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/io/resource/ResourceUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/io/resource/ResourceUtilTest.java @@ -59,6 +59,6 @@ public class ResourceUtilTest { @Test void getResourceTest2() { // project:开头表示基于项目的相对路径,此处无文件报错 - Assertions.assertThrows(NoResourceException.class, () -> ResourceUtil.getResource("project:test.xml")); + Assertions.assertThrows(NoResourceException.class, () -> ResourceUtil.getResource("project:test.xml").getStream()); } }