getClass().getClassLoader().getResourceAsStream() 正在缓存资源

发布于 2024-09-06 22:01:55 字数 167 浏览 9 评论 0原文

我有一个资源(速度模板),我希望能够在开发过程中进行交换。不过,

getClass().getClassLoader().getResourceAsStream() 

似乎缓存了模板。除了使用文件加载器而不是类加载器之外,还有其他方法可以禁用此功能吗?

I have a resource (velocity template) which I'd like to be able to swap during development. However,

getClass().getClassLoader().getResourceAsStream() 

seems to cache the template. Is there a way to disable this besides using a file loader instead of the class loader?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

画离情绘悲伤 2024-09-13 22:01:55

为了避免缓存,您可以使用:

getClass().getClassLoader().getResource().openStream()

我想,这相当于对 Velocity 使用 URLResourceLoader 而不是 ClasspathResourceLoader 。我只想使用文件加载器。

To avoid caching you can use:

getClass().getClassLoader().getResource().openStream()

It would be equal to using URLResourceLoader for Velocity instead of ClasspathResourceLoader I suppose. I would just go with a file loader.

洋洋洒洒 2024-09-13 22:01:55

看看这样的东西是否有帮助(省略异常处理):

URL res = getClass().getClassLoader().getResource(resName);
if (res != null) {
    URLConnection resConn = res.openConnection();
    resConn.setUseCaches(false);
    InputStream in = resConn.getInputStream();
}

See if something like this helps (exception handling omitted):

URL res = getClass().getClassLoader().getResource(resName);
if (res != null) {
    URLConnection resConn = res.openConnection();
    resConn.setUseCaches(false);
    InputStream in = resConn.getInputStream();
}
别闹i 2024-09-13 22:01:55

另一件需要注意的事情(除了其他答案中提到的缓存之外)是您的 IDE 或构建系统可能会将您的资源移动到构建目录并将其放在类路径上。因此,您在源目录中编辑的文件不是正在提供服务的文件。

Another thing to watch out for (besides the caching mentioned in the other answers) is that your IDE or build system might move your resources to your build directory and put that on the class path. So the file you are editing in your source directory is not the file that is being served.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文