有些文件不需要配置,只需要放到resources下面
今天和一位同事探讨了一个问题,开始的时候我事先的读取某个映射文件是配置在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下面找到对应的文件,并形成流。