spring容器创建对象原理

多例对象

public class Test {
    public static void main(String[] args)
            throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        // 加载类路径下配置文件
        InputStream resourceAsStream = Test.class.getClassLoader().getResourceAsStream("class.properties");
        Properties properties = new Properties();
        properties.load(resourceAsStream);
        Object hello = properties.get("hello");
        System.out.println(hello);
        // 根据全限定类目创建对象
        Class aClass = (Class) Class.forName((String) hello);
        System.out.println(aClass.newInstance().toString());
    }
}

单例对象

public class Test {
static  HashMap map = new HashMap<>();
    public static void main(String[] args)
            throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        // 加载类路径下配置文件
        InputStream resourceAsStream = Test.class.getClassLoader().getResourceAsStream("class.properties");
        Properties properties = new Properties();
        properties.load(resourceAsStream);
        Object hello = properties.get("hello");
        System.out.println(hello);
        // 根据全限定类目创建对象
        Class aClass = (Class) Class.forName((String) hello);
        Hello instance = aClass.newInstance();
        map.put("hello",instance);
    }
}

你可能感兴趣的:(spring容器创建对象原理)