示例:
屬性文件:beans.properties
articleDao=cn.com.leadfar.cms.backend.dao.impl.ArticleDaoImpl
channelDao=cn.com.leadfar.cms.backend.dao.impl.ChannelDaoImpl
使用此屬性時類的配置如下:
PropertiesBeanFactory.java
package cn.com.leadfar.cms.utils; import java.io.IOException; import java.util.Properties; import cn.com.leadfar.cms.backend.dao.ArticleDao; import cn.com.leadfar.cms.backend.dao.ChannelDao; public class PropertiesBeanFactory implements BeanFactory { Properties props = new Properties(); public PropertiesBeanFactory(){ //讀取配置文件,得到具體DAO的實現類名 try { props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("beans.properties")); } catch (IOException e) { e.printStackTrace(); } } public ArticleDao getArticleDao() { String className = props.getProperty("articleDao"); try { Class clz = Class.forName(className); return (ArticleDao)clz.newInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } public ChannelDao getChannelDao() { String className = props.getProperty("channelDao"); try { Class clz = Class.forName(className); return (ChannelDao)clz.newInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } }