亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? beanfactory.java

?? JAVA的IOC簡單實現
?? JAVA
字號:
package com.zj.ioc.di.imp;

import java.io.File;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.dom4j.Attribute;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.ElementHandler;
import org.dom4j.ElementPath;
import org.dom4j.io.SAXReader;

public class BeanFactory {
	private Map<String, Object> beanMap = new HashMap<String, Object>();

	public void init(String xmlUri) throws Exception {
		SAXReader saxReader = new SAXReader();
		File file = new File(xmlUri);
		try {
			saxReader.addHandler("/beans/bean", new BeanHandler());
			saxReader.read(file);

		} catch (DocumentException e) {
			System.out.println(e.getMessage());
		}
	}

	public Object getBean(String beanId) {
		Object obj = beanMap.get(beanId);
		return obj;
	}

	private void setFieldValue(Object obj, Field field, String value) {
		String fieldType = field.getType().getSimpleName();
		try {
			if (fieldType.equals("int"))
				field.setInt(obj, new Integer(value));
			else if (fieldType.equals("float"))
				field.setFloat(obj, new Float(value));
			else if (fieldType.equals("boolean"))
				field.setBoolean(obj, new Boolean(value));
			else if (fieldType.equals("char"))
				field.setChar(obj, value.charAt(0));
			else if (fieldType.equals("double"))
				field.setDouble(obj, new Double(value));
			else if (fieldType.equals("long"))
				field.setLong(obj, new Long(value));
			else
				field.set(obj, value);
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}

	private void setFieldValue(Object obj, Field field, List<String> value) {
		try {
			field.set(obj, value);
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}

	private void setFieldValue(Object obj, Field field, Set<String> value) {
		try {
			field.set(obj, value);
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}

	private void setFieldValue(Object obj, Field field,
			Map<String, String> value) {
		try {
			field.set(obj, value);
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}

	private void setFieldValue(Object obj, Field field, Object bean) {
		try {
			field.set(obj, bean);
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
	}

	private class BeanHandler implements ElementHandler {
		Object obj = null;

		public void onStart(ElementPath path) {
			Element beanElement = path.getCurrent();
			Attribute classAttribute = beanElement.attribute("class");

			Class<?> bean = null;
			try {
				bean = Class.forName(classAttribute.getText());
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
			Field fields[] = bean.getDeclaredFields();
			Map<String, Field> mapField = new HashMap<String, Field>();
			for (Field field : fields)
				mapField.put(field.getName(), field);
			try {
				obj = bean.newInstance();
			} catch (InstantiationException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			}

			path.addHandler("property", new PropertyHandler(mapField, obj));
		}

		public void onEnd(ElementPath path) {
			Element beanElement = path.getCurrent();
			Attribute idAttribute = beanElement.attribute("id");
			beanMap.put(idAttribute.getText(), obj);
			path.removeHandler("property");
		}
	}

	private class PropertyHandler implements ElementHandler {
		Map<String, Field> mapField;
		Object obj;

		public PropertyHandler(Map<String, Field> mapField, Object obj) {
			this.mapField = mapField;
			this.obj = obj;
		}

		public void onStart(ElementPath path) {
			Element propertyElement = path.getCurrent();
			Attribute nameAttribute = propertyElement.attribute("name");
			path.addHandler("value", new ValueHandler(mapField, obj,
					nameAttribute));
			path.addHandler("list", new ListHandler(mapField, obj,
					nameAttribute));
			path.addHandler("set", new SetHandler(mapField, obj,
					nameAttribute));
			path.addHandler("map", new MapHandler(mapField, obj,
					nameAttribute));
			path.addHandler("ref", new RefHandler(mapField, obj,
					nameAttribute));
		}

		public void onEnd(ElementPath path) {
			path.removeHandler("value");
			path.removeHandler("list");
			path.removeHandler("set");
			path.removeHandler("map");
			path.removeHandler("ref");
		}
	}

	private class ValueHandler implements ElementHandler {
		Map<String, Field> mapField;
		Object obj;
		Attribute nameAttribute;

		public ValueHandler(Map<String, Field> mapField, Object obj,
				Attribute nameAttribute) {
			this.mapField = mapField;
			this.obj = obj;
			this.nameAttribute = nameAttribute;
		}

		public void onStart(ElementPath path) {

		}

		public void onEnd(ElementPath path) {
			Element valueElement = path.getCurrent();
			String strValue = null;
			strValue = valueElement.getText();

			Field tmpField = mapField.get(nameAttribute.getValue());
			if (tmpField != null) {
				tmpField.setAccessible(true);
				setFieldValue(obj, tmpField, strValue);
			}
		}
	}

	private class ListHandler implements ElementHandler {
		Map<String, Field> mapField;
		Object obj;
		Attribute nameAttribute;
		List<String> list;

		public ListHandler(Map<String, Field> mapField, Object obj,
				Attribute nameAttribute) {
			this.mapField = mapField;
			this.obj = obj;
			this.nameAttribute = nameAttribute;
		}

		public void onStart(ElementPath path) {
			list = new ArrayList<String>();
			path.addHandler("value", new ListValueHandler(list));
		}

		public void onEnd(ElementPath path) {
			path.removeHandler("value");
			Field tmpField = mapField.get(nameAttribute.getValue());
			if (tmpField != null) {
				tmpField.setAccessible(true);
				setFieldValue(obj, tmpField, list);
			}
		}
	}

	private class ListValueHandler implements ElementHandler {
		List<String> list;

		public ListValueHandler(List<String> list) {
			this.list = list;
		}

		public void onStart(ElementPath path) {

		}

		public void onEnd(ElementPath path) {
			Element valueElement = path.getCurrent();
			String strValue = null;
			strValue = valueElement.getText();
			list.add(strValue);
		}
	}

	private class SetHandler implements ElementHandler {
		Map<String, Field> mapField;
		Object obj;
		Attribute nameAttribute;
		Set<String> set;

		public SetHandler(Map<String, Field> mapField, Object obj,
				Attribute nameAttribute) {
			this.mapField = mapField;
			this.obj = obj;
			this.nameAttribute = nameAttribute;
		}

		public void onStart(ElementPath path) {
			set = new HashSet<String>();
			path.addHandler("value", new SetValueHandler(set));
		}

		public void onEnd(ElementPath path) {
			path.removeHandler("value");
			Field tmpField = mapField.get(nameAttribute.getValue());
			if (tmpField != null) {
				tmpField.setAccessible(true);
				setFieldValue(obj, tmpField, set);
			}
		}
	}

	private class SetValueHandler implements ElementHandler {
		Set<String> set;

		public SetValueHandler(Set<String> set) {
			this.set = set;
		}

		public void onStart(ElementPath path) {

		}

		public void onEnd(ElementPath path) {
			Element valueElement = path.getCurrent();
			String strValue = null;
			strValue = valueElement.getText();
			set.add(strValue);
		}
	}

	private class MapHandler implements ElementHandler {
		Map<String, Field> mapField;
		Object obj;
		Attribute nameAttribute;
		Map<String, String> map;

		public MapHandler(Map<String, Field> mapField, Object obj,
				Attribute nameAttribute) {
			this.mapField = mapField;
			this.obj = obj;
			this.nameAttribute = nameAttribute;
		}

		public void onStart(ElementPath path) {
			map = new HashMap<String, String>();
			path.addHandler("entry", new MapEntryHandler(map));
		}

		public void onEnd(ElementPath path) {
			path.removeHandler("entry");
			Field tmpField = mapField.get(nameAttribute.getValue());
			if (tmpField != null) {
				tmpField.setAccessible(true);
				setFieldValue(obj, tmpField, map);
			}
		}
	}

	private class MapEntryHandler implements ElementHandler {
		Map<String, String> map;

		public MapEntryHandler(Map<String, String> map) {
			this.map = map;
		}

		public void onStart(ElementPath path) {
			Element entryElement = path.getCurrent();
			Attribute keyAttribute = entryElement.attribute("key");
			path.addHandler("value", new MapValueHandler(keyAttribute, map));
		}

		public void onEnd(ElementPath path) {
			path.removeHandler("value");
		}
	}

	private class MapValueHandler implements ElementHandler {
		Map<String, String> map;
		Attribute keyAttribute;

		public MapValueHandler(Attribute keyAttribute, Map<String, String> map) {
			this.keyAttribute = keyAttribute;
			this.map = map;
		}

		public void onStart(ElementPath path) {

		}

		public void onEnd(ElementPath path) {
			Element valueElement = path.getCurrent();
			String strValue = null;
			strValue = valueElement.getText();
			map.put(keyAttribute.getText(), strValue);
		}
	}

	private class RefHandler implements ElementHandler {
		Map<String, Field> mapField;
		Object obj;
		Attribute nameAttribute;
		Object bean;

		public RefHandler(Map<String, Field> mapField, Object obj,
				Attribute nameAttribute) {
			this.mapField = mapField;
			this.obj = obj;
			this.nameAttribute = nameAttribute;
		}

		public void onStart(ElementPath path) {
			Element refElement = path.getCurrent();
			Attribute beanAttribute = refElement.attribute("bean");
			bean = beanMap.get(beanAttribute.getText());
		}

		public void onEnd(ElementPath path) {
			Field tmpField = mapField.get(nameAttribute.getValue());
			if (tmpField != null) {
				tmpField.setAccessible(true);
				setFieldValue(obj, tmpField, bean);
			}
		}
	}

	public static void main(String[] args) {
		try {
			BeanFactory factory = new BeanFactory();
			factory.init("setting.xml");

			Person p1 = (Person) factory.getBean("me");
			System.out.print(p1.getName() + " ");
			System.out.print(p1.getAge() + " ");
			System.out.println(p1.getHeight());

			Person p2 = (Person) factory.getBean("you");
			System.out.print(p2.getName() + " ");
			System.out.print(p2.getAge() + " ");
			System.out.println(p2.getHeight());

			ListOne list = (ListOne) factory.getBean("myList");
			System.out.println(list.getMsg());

			SetOne set = (SetOne) factory.getBean("mySet");
			System.out.println(set.getMsg());

			MapOne map = (MapOne) factory.getBean("myMap");
			System.out.println(map.getMsg());

			Persons us = (Persons) factory.getBean("us");
			System.out.println(us.getI());
			System.out.println(us.getU());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品国产97久久久久久久久久久久| 自拍av一区二区三区| 日本中文一区二区三区| 91精品国产综合久久香蕉麻豆| 石原莉奈在线亚洲三区| 日韩一区二区三区在线| 狠狠色丁香久久婷婷综| 中文字幕欧美日韩一区| 91免费观看在线| 午夜电影网亚洲视频| 欧美成人精品3d动漫h| 国产成人高清在线| 一区二区三区中文在线观看| 欧美日韩中文字幕一区| 精品一区二区综合| 中文字幕一区二区三区视频| 欧美色视频在线| 九九国产精品视频| 亚洲色图欧美偷拍| 欧美日韩激情一区二区三区| 免费观看在线综合色| 国产精品国产三级国产普通话三级| 色综合天天综合色综合av| 五月婷婷久久丁香| 国产日韩欧美精品综合| 在线观看精品一区| 国产美女在线观看一区| 一区二区高清在线| 精品88久久久久88久久久| 99久久免费视频.com| 美女www一区二区| 亚洲人成网站色在线观看| 91精品国产入口在线| av电影在线观看一区| 奇米精品一区二区三区四区| 专区另类欧美日韩| 欧美成人欧美edvon| 色视频一区二区| 国产91精品一区二区麻豆亚洲| 亚洲一区二区三区免费视频| 久久久精品天堂| 91精品欧美一区二区三区综合在 | 亚洲人成网站色在线观看| 666欧美在线视频| av不卡在线观看| 精品一区二区三区蜜桃| 亚洲一二三四区不卡| 久久精品亚洲麻豆av一区二区 | 国产精品久久久久久久久快鸭| 欧美视频一区二区三区| 成人国产在线观看| 久草在线在线精品观看| 一区二区三区视频在线看| 国产欧美精品一区aⅴ影院| 欧美一区二区三区的| 日本韩国精品在线| 国v精品久久久网| 韩国v欧美v亚洲v日本v| 日韩av电影一区| 亚洲福利视频一区二区| 亚洲欧美另类小说视频| 国产精品每日更新| 国产色产综合产在线视频| 日韩欧美一区二区免费| 91精品国产综合久久精品app| 色婷婷综合五月| av影院午夜一区| 成人av在线网站| 成人v精品蜜桃久久一区| 国产成人av一区二区三区在线 | 国产大陆精品国产| 精品一区二区三区久久久| 五月天丁香久久| 亚洲国产精品一区二区久久恐怖片 | 国产精品亚洲人在线观看| 国内精品在线播放| 国产一区二区视频在线| 久久99国产精品久久| 老汉av免费一区二区三区| 人人精品人人爱| 久久精品99国产国产精| 久久99精品国产麻豆不卡| 不卡av免费在线观看| 成人丝袜18视频在线观看| 国产jizzjizz一区二区| 国产精品一区二区不卡| 盗摄精品av一区二区三区| 国产精品88888| jlzzjlzz亚洲日本少妇| 一本久道久久综合中文字幕| 91黄色免费网站| 欧美日产国产精品| 日韩精品一区二区三区在线观看| 精品国产一区久久| 国产欧美日韩视频一区二区| 国产精品国产三级国产aⅴ入口| 中文字幕在线不卡一区二区三区 | 中文字幕在线观看一区二区| 亚洲欧美偷拍卡通变态| 午夜精品久久久久| 久久se精品一区精品二区| 国产一区二区三区免费看| 成人亚洲一区二区一| 色av一区二区| 7777精品久久久大香线蕉| 精品国产一区久久| 亚洲欧美区自拍先锋| 亚瑟在线精品视频| 激情久久五月天| 成年人午夜久久久| 91精品综合久久久久久| 久久久久久久久99精品| 一区二区免费看| 国产一区欧美二区| 一本到一区二区三区| 日韩视频一区二区三区| 国产精品毛片高清在线完整版| 亚洲一区在线观看网站| 极品少妇一区二区| 91久久精品一区二区| 欧美成人激情免费网| 一区二区在线观看视频在线观看| 日韩成人精品在线观看| 成人av资源下载| 日韩午夜电影av| 亚洲人成网站影音先锋播放| 韩日欧美一区二区三区| 在线免费观看一区| 国产亚洲精品精华液| 视频一区二区三区中文字幕| 99riav一区二区三区| 日韩精品一区二区三区swag| 夜夜嗨av一区二区三区网页| 国产在线播放一区| 欧美群妇大交群的观看方式| 国产精品久久精品日日| 国产麻豆日韩欧美久久| 欧美一二三区精品| 一区二区高清在线| 不卡影院免费观看| 精品999久久久| 日韩—二三区免费观看av| 色丁香久综合在线久综合在线观看| 久久久久青草大香线综合精品| 午夜精品在线看| 在线看国产一区二区| 国产精品久久影院| 国产**成人网毛片九色| 久久久久久久久97黄色工厂| 秋霞电影网一区二区| 欧美日韩一区二区三区四区五区| 国产精品国产三级国产普通话99| 国产精品18久久久久| 精品久久久网站| 另类综合日韩欧美亚洲| 欧美一区二区三区白人| 五月综合激情婷婷六月色窝| 欧美性猛交xxxx黑人交| 亚洲精品乱码久久久久久黑人 | 日韩一级二级三级精品视频| 亚洲国产日韩在线一区模特| 色菇凉天天综合网| 亚洲欧美一区二区三区久本道91| 99热这里都是精品| 亚洲欧洲精品一区二区精品久久久| 高清av一区二区| 欧美高清在线精品一区| 风间由美一区二区av101 | 不卡的av在线| 一区在线中文字幕| 91免费国产在线| 亚洲综合激情另类小说区| 欧美综合一区二区| 亚洲成人一区二区| 91麻豆精品国产91久久久久久| 亚洲国产成人高清精品| 欧美精品久久99| 久久精品国产亚洲5555| 久久综合久久综合久久| 国产成a人无v码亚洲福利| 日本一区二区综合亚洲| 成人激情动漫在线观看| 亚洲美女屁股眼交| 欧美日韩美女一区二区| 日韩精品国产精品| 久久精品人人爽人人爽| 99国产精品久久| 五月婷婷激情综合网| 欧美草草影院在线视频| 成人小视频免费观看| 一区二区三区不卡在线观看| 亚洲丝袜另类动漫二区| 色8久久精品久久久久久蜜| 天天av天天翘天天综合网| 日韩免费观看高清完整版 | 国产91清纯白嫩初高中在线观看 | 成人小视频在线| 亚洲一级二级三级| 久久婷婷国产综合精品青草| eeuss鲁片一区二区三区|