用java读取Properties文件来改变实现类
来源:互联网 发布:网络爱国主义事件 编辑:程序博客网 时间:2024/05/14 22:54
用java读取Properties文件来改变实现类的Demo:
public abstract class Vehicle {
public abstract void run();
}
public class Car extends Vehicle{
public void run(){
System.out.println("with Car");
}
}
public class Broom extends Vehicle {
@Override
public void run() {
System.out.println("Broom");
}
}
test.properties 中:
VehicleType=abstractfactory.step4properties.Broom
注意:该文件要放在src目录下,且等号两边不可有空格
import java.util.Properties;
public class Test {
public static void main(String[] args) throws Exception{
Properties pros = new Properties();
///配置文件编译之后放在bin目录下
//每个class的类,都会被当作Class对象。getClassLoader:拿到了装载这个Class的装载器
///把它当作一个流读进来,默认路径是根目录。读出来之后,把它转化为一个properties对象,然后,等号左边的就是key,等号右边的就是value
pros.load(Test.class.getClassLoader().getResourceAsStream("abstractfactory/step4properties/spring.properties"));
String vehicleTypeName = pros.getProperty("VehicleType");
System.out.println(vehicleTypeName);
///现在,得到的字符串,我们想把字符串代表的类,产生一个对象,用到反射
///Class.forName把字符串所代表的表装到内存,newInstance:生成对象,得到的是个Object
Vehicle v = (Vehicle)Class.forName(vehicleTypeName).newInstance();
v.run();
//只要改变test.properties中的VehicleType=factory.step4Spring.Broom,即可实现改变实现类的功能。
}
}
public abstract class Vehicle {
public abstract void run();
}
public class Car extends Vehicle{
public void run(){
System.out.println("with Car");
}
}
public class Broom extends Vehicle {
@Override
public void run() {
System.out.println("Broom");
}
}
test.properties 中:
VehicleType=abstractfactory.step4properties.Broom
注意:该文件要放在src目录下,且等号两边不可有空格
import java.util.Properties;
public class Test {
public static void main(String[] args) throws Exception{
Properties pros = new Properties();
///配置文件编译之后放在bin目录下
//每个class的类,都会被当作Class对象。getClassLoader:拿到了装载这个Class的装载器
///把它当作一个流读进来,默认路径是根目录。读出来之后,把它转化为一个properties对象,然后,等号左边的就是key,等号右边的就是value
pros.load(Test.class.getClassLoader().getResourceAsStream("abstractfactory/step4properties/spring.properties"));
String vehicleTypeName = pros.getProperty("VehicleType");
System.out.println(vehicleTypeName);
///现在,得到的字符串,我们想把字符串代表的类,产生一个对象,用到反射
///Class.forName把字符串所代表的表装到内存,newInstance:生成对象,得到的是个Object
Vehicle v = (Vehicle)Class.forName(vehicleTypeName).newInstance();
v.run();
//只要改变test.properties中的VehicleType=factory.step4Spring.Broom,即可实现改变实现类的功能。
}
}
- 用java读取Properties文件来改变实现类
- java 读取,修改properties文件,不改变文件内容顺序
- Spring用代码来读取properties文件
- Spring用代码来读取properties文件
- 用java读取properties文件
- Java读取Properties文件
- java读取.properties文件
- java读取.properties文件
- Java读取properties文件
- Java读取properties文件
- java读取properties文件
- java读取properties文件
- java读取properties文件
- java读取properties文件
- java 读取properties文件
- java 读取 properties 文件
- java读取properties文件
- java读取properties文件
- struts标签大全续
- oreilly java swing : JTable 之Selection Renderer Editor
- struts错误 大全总结
- cache和内存的映射方式
- C/C++面试题大汇总
- 用java读取Properties文件来改变实现类
- 盘点:飞机神秘失踪之谜
- a的n次方的快速算法及大数相乘
- WEB前端开发高性能优化部分之JavaScript的优化细节!
- 关于Jquery的parent和parents
- mmap/do_mmap/do_mmap_pgoff
- 发展计划
- Win32 API消息函数:SendMessage PostMessage
- 大端小端(Big- Endian和Little-Endian)