Spring的依赖注入实现原理

Spring的依赖注入实现原理

ID:37896314

大小:61.50 KB

页数:7页

时间:2019-06-02

Spring的依赖注入实现原理_第1页
Spring的依赖注入实现原理_第2页
Spring的依赖注入实现原理_第3页
Spring的依赖注入实现原理_第4页
Spring的依赖注入实现原理_第5页
资源描述:

《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.     

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。