欢迎来到天天文库
浏览记录
ID:37896314
大小:61.50 KB
页数:7页
时间:2019-06-02
《Spring的依赖注入实现原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Spring注入原理IOC(InverseofControl)可翻译为“控制反转”,但大多数人都习惯将它称为“依赖注入”。在Spring中,通过IOC可以将实现类、参数信息等配置在其对应的配置文件中,那么当需要更改实现类或参数信息时,只需要修改配置文件即可,这种方法在上例的基础上更进一步的降低了类与类之间的耦合。我们还可以对某对象所需要的其它对象进行注入,这种注入都是在配置文件中做的,Spring的IOC的实现原理利用的就是Java的反射机制,Spring还充当了工厂的角色,我们不需要自己建立工厂类。Spring的工厂类会帮我们完成配置文
2、件的读取、利用反射机制注入对象等工作,我们可以通过bean的名称获取对应的对象。下面让我们看看如下的模拟Spring的bean工厂类:1、BeanFactory.java1.package com.yt.manager.spring; 2. 3.import java.io.InputStream; 4.import java.lang.reflect.Method; 5.import java.util.HashMap; 6.import java.util.Iterator; 7.import java.util.Map;
3、 8.import org.apache.log4j.Logger; 9.import org.dom4j.Attribute; 10.import org.dom4j.Document; 11.import org.dom4j.Element; 12.import org.dom4j.io.SAXReader; 13. 14./** 15. * @ClassName: BeanFactory 16. * @Project: base-info 17. * @Author: zxf 18. * @Date: 2011-5-1
4、9 19. */ 20.public class BeanFactory { 21. 22. Logger log = Logger.getLogger(BeanFactory.class); 23. private Map beanMap = new HashMap(); 24. 25. /** 26. * bean工厂的初始化 27. * 28. * @param xml 29. */ 30.
5、 public void init(String xml) { 31. try { 32. //读取指定的配置文件 1. SAXReader reader = new SAXReader(); 2. //从class目录下获取指定的配置文件 3. ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 4. Inp
6、utStream inputStream = classLoader.getResourceAsStream(xml); 5. //读取xml文件 6. Document document = reader.read(inputStream); 7. //获取跟节点 8. Element root = document.getRootElement(); 9. //遍历bean节点 10. Ele
7、ment foo; 11. for(Iterator iteBean = root.elementIterator("bean");iteBean.hasNext();){ 12. foo = (Element)iteBean.next(); 13. //获取bean的属性id和class 14. Attribute id = foo.attribute("id"); 15. Attrib
8、ute cls = foo.attribute("class"); 16. //利用java反射机制,通过class的名称获取Class对象 17.
此文档下载收益归作者所有