模拟spring用配置文件的方式创建对象

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wangming520liwei/article/details/53812861

模拟spring用配置文件的方式创建对象

看代码:

定义一个接口:

package designfactory;




public interface Moveable {
    //有一个run方法
    void run();

}


两个实现类,实现接口:

package designfactory;


public class Train  implements Moveable {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.print("Train run run run run ");
    }

}
package designfactory;


public class Car  implements Moveable {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println(" car move run runr run r r r ");
    }

}


配置文件:

spring.properties

vechileType = designfactory.Train


看测试类:

package designfactory;

import java.io.IOException;
import java.util.Properties;


public class Test {

    public static void main(String[] args) throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException {
        // TODO Auto-generated method stub
        Properties  p = new Properties(); // 读取配置文件 
        //如何读取配置文件
        // Test.class 拿到这个类对象,getclassLoader 是拿到类装载器
        p.load(Test.class.getClassLoader().getResourceAsStream("designfactory/spring.properties"));// 文件转为配置文件
        String vechileType = p.getProperty("vechileType");
        //使用Java 反射将类取出
        //装载到内存  Class.forName  newInstatnce 是实例化对象
        Object o = Class.forName(vechileType).newInstance();
        Moveable m = (Moveable)o;
        m.run();
        //System.out.println(vechileType);
        //Moveable  a = new Car();
        //抽象工厂模式是一个抽象工厂, 加一系列抽象产品类, 然后去实现抽象工厂,就可以实现具体产品, 具体产品只要实现抽象产品即可
        //a.run();
    
    }

}

猜你喜欢

转载自blog.csdn.net/wangming520liwei/article/details/53812861