博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置文件Properties集合
阅读量:7282 次
发布时间:2019-06-30

本文共 2586 字,大约阅读时间需要 8 分钟。

特点:主要在序列化的时候使用

   不可以使用泛型
   实现了Map接口(存放的是键值对)
      key和value都是String
作用:作为简单的配置文件使用

通常用于简单工厂模式,一个抽象父类Car ,若干子类Benz BMW ……  ,一个简单工厂CarFactory,一个测试类UI

一个抽象父类Car 

1 public interface Car {2     public abstract void run();3 }

一个子类Benz

1 public class Benz implements Car {2 3     @Override4     public void run() {5         System.out.println("Benz run");6 7     }8 9 }

一个子类BMW

1 public class BMW implements Car {2 3     @Override4     public void run() {5         System.out.println("BMW run");6 7     }8 9 }

一个简单工厂CarFactory

1 import java.io.FileInputStream; 2 import java.io.FileNotFoundException; 3 import java.io.IOException; 4 import java.util.Properties; 5  6 public class CarFactory { 7  8     public static Car createCar() { 9         // 通过配置文件来创建车10         Properties property = new Properties();11         FileInputStream inStream = null;12         try {13             inStream = new FileInputStream("car.properties");14         } catch (FileNotFoundException e) {15             System.out.println(e.getMessage());16 //            e.printStackTrace();17         }18         try {19             property.load(inStream); // 通过流写入集合,获得键值对20 21 //            得到Car实现类的全限命名22             String clazz = property.getProperty("properties");23 //            使用类反射获取对象实例24             Class
c = Class.forName(clazz);25 Car car = (Car) c.newInstance();26 return car;27 } catch (IOException e) {28 System.out.println(e.getMessage());29 // e.printStackTrace();30 } catch (ClassNotFoundException e) {31 System.out.println(e.getMessage());32 // e.printStackTrace();33 } catch (InstantiationException e) {34 System.out.println(e.getMessage());35 // e.printStackTrace();36 } catch (IllegalAccessException e) {37 System.out.println(e.getMessage());38 // e.printStackTrace();39 }40 return null;41 42 }43 }

一个测试Ui 

1 public class CarUi {2 3     public static void main(String[] args) {4         Car car = CarFactory.createCar();5         car.run();6     }7 8 }

一个car.properties 配置文件,存放了两个类的全限命名

#properties=com.woniu.car.BMW

properties=com.woniu.car.Benz

 

总结:

配置文件主要的作用是通过修改配置文件可以方便的修改代码中的参数,实现不用改class文件即可灵活变更参数。(想要什么车就改什么车)

解释:java运行中java文件会变成class文件,之后无法通过反编译找到原样的代码,这样的话,如果java类中某个参数变更,就很难灵活的实现参数修改,这个时候properties 文件就能很灵活的实现配置,减少代码的维护成本和提高开发效率。

同样,如果我们存储信息时想要存储在不同的数据库中时,就可以通过修改配置文件来切换数据库(就是键值对,程序中参数是键,全限命名是值,通过修改全限命名我们就可以通过类反射获取到不同的对象,前提是使用多态,许多实现类实现一个接口 Car car = 奔驰或宝马)。

 

转载于:https://www.cnblogs.com/19322li/p/10697892.html

你可能感兴趣的文章
对Delphi 7/Delphi 2007的Windows服务类库的一个小改进
查看>>
了解你所不知道的SMON功能(二):合并空闲区间
查看>>
mysqldump备份数据库,并删除7天前的备份文件脚本
查看>>
webbench 网站压力测试工具
查看>>
Alter index coalesce VS shrink space
查看>>
samba共享
查看>>
XenServer 6.5实战系列:Install Update For XenServer 6.5
查看>>
LAMP报PDO的错怎么办?
查看>>
shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
查看>>
Network Based Application Recognition (NBAR) 网络应用程序识别
查看>>
Linux服务器性能评估与优化、监控利器---dstat应用
查看>>
linux添加新硬盘、格式化以及自动挂载
查看>>
SQLSERVER备份脚本
查看>>
zabbix 自动发现 tomcat日志异常文件数量
查看>>
javascript的正则表达式
查看>>
windows服务器远程桌面(rdpclip.exe)的妙用
查看>>
使用inotify监视Linux文件变化
查看>>
SQLite第八课 auth.c授权文件解析
查看>>
nginx日志切割
查看>>
配置Samba服务器
查看>>