Mik*_*ike 12 java velocity classpath
我有一个资源(速度模板),我希望能够在开发过程中交换.然而,
getClass().getClassLoader().getResourceAsStream()
Run Code Online (Sandbox Code Playgroud)
似乎缓存模板.除了使用文件加载器而不是类加载器之外,有没有办法禁用它?
为避免缓存,您可以使用:
getClass().getClassLoader().getResource().openStream()
Run Code Online (Sandbox Code Playgroud)
它等于使用URLResourceLoader
Velocity而不是ClasspathResourceLoader
我想的.我会选择一个文件加载器.
看看这样的东西是否有帮助(省略了异常处理):
URL res = getClass().getClassLoader().getResource(resName);
if (res != null) {
URLConnection resConn = res.openConnection();
resConn.setUseCaches(false);
InputStream in = resConn.getInputStream();
}
Run Code Online (Sandbox Code Playgroud)
另一件需要注意的事情(除了其他答案中提到的缓存之外)是您的 IDE 或构建系统可能会将您的资源移动到构建目录并将其放在类路径上。因此,您在源目录中编辑的文件不是正在提供服务的文件。
归档时间: |
|
查看次数: |
4476 次 |
最近记录: |