I have a resource (velocity template) which I'd like to be able to swap during develop开发者_开发知识库ment. 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?
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.
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();
}
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.
精彩评论