我有这样的代码:
@Path("/test")
public class MyServlet {
static final Dictionary stuff = new Hashtable();
@GET
public Response response(@QueryParam....)
throws FileNotFoundException {
File directory = new File("test\");
File[] directoryListing = directory.listFiles();
while .......
我想做这个部分我打开文件并在启动时将它们放在我的字典中,而不是每个请求,我该怎么做?所以我稍后可以在响应方法中使用字典。
答案 0 :(得分:3)
您可以使用静态初始化块,它将在加载类后运行:
public class MyServlet {
static final Dictionary stuff = new Hashtable();
static {
// load files
}
// ...
}
这种技术对于jax-rs / jersey或任何其他框架并不特殊,它是一种语言功能。
如果您希望以后能够再次调用它,请将代码移动到某个方法:
public class MyServlet {
static final Dictionary stuff = new Hashtable();
static {
// load at startup
reloadDictionary();
}
// call this whenever you want to reload the files
static void reloadDictionary() {
// reload files
}
// ...
}