我有一个正在开发的 Grails 2.1 应用程序,并且我有一个正在调用Thread.currentThread().contextClassLoader.getResource(fileName)
以加载配置文件的服务grails-app/conf
(不过,我希望位置无关紧要)。
它工作得很好,除了我必须重新启动 grails 应用程序来加载对配置文件的更改。我真的很希望每次请求资源时都能读取文件内容,至少在开发过程中是这样。
另外,如果可以避免的话,我想避免编写自己的缓存系统。解决方案越简单越好。
我的问题似乎与速度类似,但使用getClass().getClassLoader().getResource(path).openStream()
似乎不起作用。
编辑:我想我可能遗漏了一个重要的细节。我正在检索的资源是非静态的。我正在使用 grails 模板引擎将值注入到资源中,如下所示:
Map bindings = [keys: 'values']
new SimpleTemplateEngine().createTemplate(resource).make(bindings).toString()
使用我的调试器,我发现资源文本没有改变,但知道上述内容可能会改变潜在的答案。
编辑#2:我尝试使用 URLConnection.setUseCaches(false) ,但没有运气:
URLConnection connection = Thread.currentThread().contextClassLoader.getResource(path).openConnection()
connection.setUseCaches(false)
connection.connect()
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))
String content = reader.readLines().join('\n')
reader.close()