到配置⽂件⾥的配置信息;
2.发布系统的时候,需要把系统打成jar执⾏,这时候之前的加载配置⽂件的⽅法就不起作⽤了得不到配置⽂
件的路径;
3.因在系统刚启动时,需要启动加载⼀个Listener,在Listener⾥⼜加载了⼀个配置⽂件。
4.以上加载配置⽂件,都是只能加载⼀次配置⽂件,当配置⽂件的内容修改后,只能再次重启服务后才能读
取到变动的配置内容,系统中有些配置参数是需要时时获取配置⽂件⾥的最新参数信息。
如何在以上场景加载配置⽂件呢,通过来回的资料、调试,终于搞定。以下是具体代码:
[java]view plaincopy
1. package test;
2.
3. import java.io.FileInputStream;
4. import java.io.IOException;
5. import java.io.InputStream;
6. import java.util.Properties;
7.
8. import figuration.PropertiesConfiguration;
9. import loading.FileChangedReloadingStrategy;
10. public class Test {
11. public static void main(String[] args) throws Exception{
12. System.out.println(load1());//通过ClassLoader⽅式加载配置⽂件
13. System.out.println(load2());//
14.
15. }
16. /**
麻油是什么油17. * 通过ClassLoader⽅式加载配置⽂件
18. * 这种加载⽅式:
19. * 1.可在myeclipse⾥运⾏时得到配置⽂件路径;
20. * 2.亦可在把项⽬打成jar包运⾏时,得到配置⽂件路径;
21. */
商天娥
22. public static String load1()throws Exception{
23. Properties p = new Properties();
24. InputStream in = ClassLoader().getResourceAsStream("config/config.properties");
25. p.load(in);
26. return p.getProperty("user_name").toString().trim();
27. }
28.
29. /**读取配置文件失败
30. * ⾃动加载配置⽂件机制,可在修改配置⽂件后,不⽤重启服务也能得到配置⽂件的新内容
s3云顶之弈31. */
32. public static String load2()throws Exception{
33. String file_name = ClassLoader().getResource("config/config.properties").getFile();
34. Properties p = new Properties();
35. PropertiesConfiguration propconfig =null;//创建⾃动加载的机制
36. propconfig = new PropertiesConfiguration();
37. propconfig.setEncoding("UTF-8");//设置编码
问道首饰材料38. propconfig.setReloadingStrategy(new FileChangedReloadingStrategy());//设置⾃动冲加载机制
39. p.load(new FileInputStream(file_name));
40. Property("user_name").toString().trim();//每次调⽤这个⽅法都会从配置⽂件⾥取到最新
的参数民生信用卡提升额度
41. }
42. }
发布评论