读书人

IoC器皿

发布时间: 2013-01-28 11:49:56 作者: rapoo

IoC容器

个人比较喜欢.Net平台的Windsor,Spring中的类名太长了。

tips包中的工具类FromPropertyFile将在后面的例程中广泛使用。简单的事情用简单的方案。平台 JDK7

package tips;import java.io.*;import java.util.Properties;/** * FromPropertyFile.java. * 简单的事情用简单的方案。 * 使用java.util.Properties类,从Java properties file中读取字符串。 * @author yqj2065 * @version 0.1 */public class FromPropertyFile {    /**     * @param path .properties文件的路径     * @param key 键     * @return 键对应的值     */    public static String getString(String path,String key){        Properties props = new Properties();        try (InputStream is = FromPropertyFile.class.getClassLoader().getResourceAsStream(path) ){                        try(InputStreamReader isr = new InputStreamReader(is,"UTF-8")){                props.load(isr);//从流中加载properties文件信息            }        } catch (java.io.FileNotFoundException e) { e.printStackTrace();        } catch (java.io.IOException e) {         e.printStackTrace();        }        return props.getProperty(key);    }    /**     * @param path .properties文件的路径     * @param key 键     * @return 一个对象     */    public static Object getObject(String path,String key){        String typeName = getString(path,key);//"ioc.properties","typeName"        Object obj=null;        if(typeName!=null){            try {                obj = Class.forName(typeName).newInstance();            } catch (InstantiationException e) {e.printStackTrace();            } catch (IllegalAccessException e) {e.printStackTrace();            } catch (ClassNotFoundException e) {e.printStackTrace();            }        }        return obj;    }    /**     * "my.properties","typeName"     */    public static Object getObject(){                return getObject("my.properties","typeName");    }}


getObject()将从my.properties文件中读取typeName键映射的类全名。my.properties如下:

#本属性配置文件代表从数据库、属性配置文件或XML文件中获得字符串的各种技术。
#本文件用于多个程序,使用前要检查本文件是否进行了必要的修改。
#typeName键必须映射类全名。
typeName=依赖注入.S2

为了避免用java.util.Properties读取中文内容的配置文件时发生中文乱码的现象,请用UTF格式保存.properties文件。一个简单的办法是对.properties文件进行“另存为”,在“编码”列表框中选择UTF-8。

读书人网 >软件架构设计

热点推荐