理解Spring框架---利用,xml,java反射简单实现Spring
来源:互联网 发布:下颌关节紊乱 知乎 编辑:程序博客网 时间:2024/06/06 03:51
对于Spring框架的简单模拟:
a).读取xml配置文件
b.)利用java反射机制获取对象
第一步:创建一个接口,定义一个获取对象的方法getBean():
public interface BeanFactory {public Object getBean(String name);}
第二步:创建一个类XmlContext,实现Beanfactory接口中的getBean方法:
public class XmlContext implements BeanFactory {// 对象名加对象实例private Map<String, Object> beans = new HashMap<String, Object>();// 利用jdom读取xml文件获取对象名,通过反射获取对象public XmlContext() throws Exception {SAXBuilder builder = new SAXBuilder();InputStream file = new FileInputStream("test.xml");Document document = builder.build(file);// 获得文档对象Element root = document.getRootElement();// 获得根节点List<Element> list = root.getChildren();for (Element elements : list) {// 获取属性值,即为对象的名字String ObjectName = elements.getAttributeValue("id");// 在获取类的路径,在通过java反射获取类的类类型,在获取该类的对象String classpath = elements.getAttributeValue("class");Object obj = Class.forName(classpath).newInstance();beans.put(ObjectName, obj);// 获取子节点下的property节点List<Element> eles = elements.getChildren("property");// 进行遍历for (Element e : eles) {String proName = e.getAttributeValue("name");Object beanObj = this.getBean(e.getAttributeValue("bean"));System.out.println(beanObj.toString());// 然后调用service的构造方法String methodName = "set"+ proName.substring(0, 1).toUpperCase()+ proName.substring(1);System.out.println("methodName:" + methodName);// 通过反射获取构造方法Method method = obj.getClass().getMethod(methodName,beanObj.getClass().getInterfaces()[0]);method.invoke(obj, beanObj);}}}@Overridepublic Object getBean(String name) {return beans.get(name);}}
0 0
- 理解Spring框架---利用,xml,java反射简单实现Spring
- Java仿Spring框架IOC控制反转利用反射简单实现(源码)
- Spring框架简单理解
- 利用反射实现简单的Spring注解注入实例
- 利用反射实现简单的Spring注解注入实例
- java利用反射机制模拟spring IOC实现
- java利用反射机制模拟spring IOC实现
- 利用java反射机制模拟spring IOC原理的实现
- 利用反射机制模拟SPRING IOC实现
- 重回Java开发-利用反射模拟Spring
- Java利用spring注解做反射机制
- 实现简单Spring框架核心-------!!
- java 框架基础知识(1)----反射-->Spring IoC
- 利用Java反射实现插件框架
- 【spring框架】利用动态代理实现AOP
- Java反射实现类似 Spring IOC 实例
- java反射机制模拟Spring Ioc实现
- java+spring简单实现AOP
- 亚当·扎加耶夫斯基《在大教堂前》
- 面向对象之继承
- bzoj2150 部落战争
- next permutation函数
- 【郑轻】[1400]这不可能是情书吧
- 理解Spring框架---利用,xml,java反射简单实现Spring
- 视图UIView动画
- centOS7在VMware安装后出现命令行界面不能进入图形界面的解决方案
- 通过overScrollBy实现下拉视差特效
- 史上最全AndroidStudio快捷键中文版
- 表单的返回
- AsyncHttpClient
- 算法设计题2.29-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- java web基础 --- URL重定向Filter