/** * @Author: Promsing * @Date: 2021/3/19 - 11:50 * @Description: 模仿IOC容器,将建立的对象放在Map集合中,加载该类时会读取配置文件中,将类放入Map中 * @version: 1.0 */ public class BeanFactory { //定义一个properties对象 private static Properties props; //定义一个Map,用于存放咱们建立的对象(单例,当类加载以后就有了对象,以后从Map中获取) private static Map<String,Object> beans; //容器 static { try { props=new Properties(); //将bean.properties放在了resources路径下 InputStream is=BeanFactory.class.getClassLoader().getResourceAsStream("bean.properties"); props.load(is); //实例化容器 beans=new HashMap<String,Object>(); //从配置文件中获取全部key值 Enumeration<Object> keys = props.keys(); while (keys.hasMoreElements()){ //取出每个key String key = keys.nextElement().toString(); //根据key获取value String path = props.getProperty(key); Object value=Class.forName(path).newInstance(); //放入容器中 beans.put(key,value); } }catch (Exception e){ e.printStackTrace(); } } //提供一个访问Map容器的入口 public static Object getInstance(String name){ return beans.get(name); } }