src/org/bs/utils/ClassPathXmlBeanFactory.java

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package org.bs.utils;

import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.bs.model.Channel;
import org.bs.service.ChannelService;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;


public class ClassPathXmlBeanFactory implements BeanFactory{

	private Map<String, Object> beans = new HashMap<String, Object>();
	
	public ClassPathXmlBeanFactory() {
		InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("beans.xml");
		SAXBuilder builder = new SAXBuilder();
		Document document = null;
		try {
			document = builder.build(inputStream);
		} catch (Exception e) {
			e.printStackTrace();
		}
		Element root = document.getRootElement();
		List elements = root.getChildren();
		for (int i = 0; i < elements.size(); i++) {
			Element element = (Element)elements.get(i);
			String id = element.getAttributeValue("id");
			String className = element.getAttributeValue("class");
			Object bean = null;
			try {
				bean = Class.forName(className).newInstance();
				beans.put(id, bean);
			} catch (Exception e) {
				e.printStackTrace();
			}
			List children = element.getChildren("property");
			if(children!=null){
				for (int j = 0; j < children.size(); j++) {
					Element property = (Element) children.get(j);
					String name = property.getAttributeValue("name");
					String ref = property.getAttributeValue("ref");
					String methodName = "set" + name.substring(0,1).toUpperCase()+name.substring(1);
					Object refObject = beans.get(ref);
					try {
						Method method = bean.getClass().getMethod(methodName,refObject.getClass().getInterfaces());
						method.invoke(bean,refObject);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		}
	}
后面还有 12 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。