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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。