最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象

 更新時(shí)間:2018年08月26日 14:37:07   作者:魔靈兒  
這篇文章主要為大家詳細(xì)介紹了使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象的具體代碼,供大家參考,具體內(nèi)容如下

說明:

 其作用是減少層與層之間的依賴。

實(shí)現(xiàn)步驟:

編寫2個(gè)類(Student,Teacher)再編寫beans.properties文件,接著編寫B(tài)eanFactory類,最后編寫測(cè)試類BeanTest。

參考代碼如下:

/**
 *beans.properties文件的內(nèi)容(位于與src平級(jí)的config資源包下)
 */
Student=com.xxx.generic.demo.Student
Teacher=com.xxx.generic.demo.Teacher
 
/**
 *BeanFactory類的參考代碼
 */
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
 
public class BeanFactory {
 private BeanFactory() {
 }
 
 private static Map<String, String> beans = new HashMap<>();
 static {
 InputStream is = BeanFactory.class.getClassLoader().getResourceAsStream("beans.properties");
 Properties prop = new Properties();
 try {
  prop.load(is);
  Enumeration<String> keys = (Enumeration<String>) prop.propertyNames();
  while (keys.hasMoreElements()) {
  String key = keys.nextElement();
  String value = prop.getProperty(key);
  beans.put(key, value);
  }
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  if (is != null) {
  try {
   is.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
  }
 }
 }
 
 public static <T> T getBean(Class<T> clazz) {
 T t = null;
 String className = clazz.getSimpleName();
 Set<String> keys = beans.keySet();
 for (String key : keys) {
  if (key.equals(className)) {
  String value = beans.get(key);
  try {
   t = (T) Class.forName(value).newInstance();
  } catch (Exception e) {
   e.printStackTrace();
  }
  break;
  }
 }
 return t;
 }
}
 
/**
 *BeanTest類參考代碼
 */
public class BeanTest {
 public static void main(String[] args) {
 Student s = BeanFactory.getBean(Student.class);
 System.out.println(s + ":我是" + s.getClass().getSimpleName() + "的一個(gè)對(duì)象。");
 Teacher t = BeanFactory.getBean(Teacher.class);
 System.out.println(t + ":我是" + t.getClass().getSimpleName() + "的一個(gè)對(duì)象。");
 }
}

運(yùn)行結(jié)果如下:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

宕昌县| 襄垣县| 盐津县| 兴宁市| 深圳市| 长寿区| 巴青县| 岑巩县| 闻喜县| 泾源县| 金乡县| 苏尼特左旗| 龙陵县| 台南县| 上犹县| 大安市| 哈尔滨市| 常熟市| 黎川县| 伊宁市| 阿鲁科尔沁旗| 南平市| 石台县| 建水县| 华池县| 六安市| 正定县| 漳浦县| 承德县| 九台市| 墨脱县| 稻城县| 句容市| 宁化县| 甘德县| 阳城县| 五常市| 肃北| 天津市| 易门县| 门头沟区|