今天和一位同事探讨了一个问题,开始的时候我事先的读取某个映射文件是配置在applicationContext.xml的bean定义里面;但是他提出来,是否可以不需要配置呢?直接作为一个资源文件完事,这样测试联调部署都方便。确实,如果一个文件的作用只是存一些数据,并且一般不变,那么完全可以放到配置里面(放到src/main/resources下面);然后可以通过下面的代码来获取里面数据。
InputStream is = this.getClass().getClassLoader().getResourceAsStream(mappingFilePath);
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader br = new BufferedReader(isr);
while ((thisLine = br.readLine()) != null) {
String[] strs = thisLine.split("::");
String requestPath = strs[0].toLowerCase();
String serviceName = strs[1];
this.mapping.put(requestPath, serviceName);
}
this.getClass().getClassLoader().getResourceAsStream是到classpath下面找到对应的文件,并形成流。