`
tangyanbo
  • 浏览: 265272 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring 源码阅读之BeanFactory

 
阅读更多

1. BeanFactory 的结构体系如下:

2. XmlBeanFactory ,装载Spring配置信息

 

package org.springframework.beans.factory.xml;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.core.io.Resource;

public class XmlBeanFactory extends DefaultListableBeanFactory {

	private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this);


	/**
	 * Create a new XmlBeanFactory with the given resource,
	 * which must be parsable using DOM.
	 * @param resource XML resource to load bean definitions from
	 * @throws BeansException in case of loading or parsing errors
	 */
	public XmlBeanFactory(Resource resource) throws BeansException {
		this(resource, null);
	}

	/**
	 * Create a new XmlBeanFactory with the given input stream,
	 * which must be parsable using DOM.
	 * @param resource XML resource to load bean definitions from
	 * @param parentBeanFactory parent bean factory
	 * @throws BeansException in case of loading or parsing errors
	 */
	public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException {
		super(parentBeanFactory);
		this.reader.loadBeanDefinitions(resource);
	}

}

3. BeanFactory 接口

 

package org.springframework.beans.factory;

import org.springframework.beans.BeansException;


public interface BeanFactory {

	
	String FACTORY_BEAN_PREFIX = "&";


	Object getBean(String name) throws BeansException;

	
	<T> T getBean(String name, Class<T> requiredType) throws BeansException;

	
	<T> T getBean(Class<T> requiredType) throws BeansException;

	
	Object getBean(String name, Object... args) throws BeansException;

	
	boolean containsBean(String name);

	
	boolean isSingleton(String name) throws NoSuchBeanDefinitionException;

	
	boolean isPrototype(String name) throws NoSuchBeanDefinitionException;

	
	boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException;

	
	Class<?> getType(String name) throws NoSuchBeanDefinitionException;

	
	String[] getAliases(String name);

}

 

4. 运用实例:

 

Resource reource = null;//load spring configure file
BeanFactory bf = new XmlBeanFactory(reource);
bf.getBean("beanName");


 

 

 

分享到:
评论

相关推荐

    二、Spring源码分析——BeanFactory

    《Spring源码分析——BeanFactory》 在Java的IoC(Inversion of Control)和DI(Dependency Injection)领域,Spring框架扮演着至关重要的角色。BeanFactory是Spring的核心组件之一,它是容器的基石,负责管理应用...

    spring源码中英文注释

    这个压缩包文件中的"spring源码 中英文注释"为开发者提供了一个深入理解Spring框架内部工作原理的机会。通过阅读源码和注释,我们可以更清晰地了解Spring如何管理依赖注入、AOP(面向切面编程)、事务管理、上下文...

    简单模拟Spring的beanFactory

    在Java世界中,Spring框架是应用最广泛的IoC(Inversion of Control)和DI(Dependency Injection)容器之一。本文将通过模拟Spring的`BeanFactory`来深入理解其工作原理,帮助开发者更好地掌握Spring的核心概念。 ...

    Spring源码学习三:BeanFactory解析1

    在Spring框架中,BeanFactory是核心的IoC(Inversion of Control)容器接口,它负责管理和维护Bean的生命周期。BeanFactory提供了对Bean的创建、初始化、销毁等操作的支持,是Spring容器的基础。当我们通过XML、Java...

    Spring源代码解析(一):IOC容器.doc

    Spring框架的IOC(Inversion of Control,控制反转)容器是其核心...通过源代码阅读,我们可以看到Spring如何优雅地将这些复杂的概念转化为可扩展和灵活的代码,从而更好地利用它来构建高效且松耦合的Java应用程序。

    spring源代码下载地址

    在Spring源码的压缩包中,"Spring源码.txt"可能包含了源代码的说明、导入指南或其他相关信息。打开这个文本文件,可以获取更多关于如何使用和理解Spring源码的提示。 总的来说,获取并研究Spring的源代码是提升Java...

    Spring源代码解析

    在源代码中,`BeanFactory`和`ApplicationContext`是IoC容器的主要接口,它们负责加载配置,创建和管理bean。 Spring的AOP模块则提供了声明式事务管理、日志记录、性能监控等功能。在源代码中,`Advisor`、`...

    Spring的BeanFactory的接口源码中文解释

    Spring的BeanFactory的接口的中文解释

    Spring源码深度解析第二版

    Spring源码深度解析第二版 Spring是一款广泛应用于Java企业级应用程序的开源框架,旨在简化Java应用程序的开发和部署。Spring框架的核心主要包括了IoC容器、AOP、MVC框架等模块。 第1章 Spring整体架构和环境搭建 ...

    Spring源码解析.zip

    Xmind是一种强大的思维导图工具,它可以清晰地展现Spring源码中的类、接口和方法关系,使得源码阅读更加有序。 总的来说,"Spring源码解析"这个压缩包为我们提供了一个系统性学习Spring源码的途径。通过深入学习和...

    spring源码合集spring源码合集

    《Spring源码合集:揭示Java后端开发的基石》 Spring框架作为Java后端开发的核心,其源码的研究对于提升开发者对系统架构理解和优化能力至关重要。本合集深入剖析了Spring的诸多关键特性,包括依赖注入、配置类解析...

    spring源码注释中文

    Spring 源码注释中文版的提供,使得开发者能够更加深入地理解 Spring 的工作原理,无需经过复杂的编译过程,可以直接阅读源码注释来学习。 Spring 框架主要由以下几个关键模块组成: 1. **Core Container(核心...

    spring 源码中文注释

    这份"spring 源码中文注释"包含了对Spring框架源码的详细解读,对于理解其工作原理、优化代码以及定制化开发具有重要意义。 首先,我们来看看Spring的核心组件——IoC容器。IoC容器是Spring的核心,它负责管理对象...

    构建为eclipse项目的spring源码

    总的来说,构建和研究Spring源码是提升Java开发技能的重要步骤,它能帮助我们深入理解Spring框架的内部工作原理,提高代码设计和调试的能力。通过在Eclipse环境中构建Spring源码项目,我们可以更直观地看到框架的...

    Spring源码分析.pdf

    Spring 源码分析 Spring 框架是 Java 语言中最流行的开源框架之一,它提供了一个强大且灵活的基础设施来构建企业级应用程序。在 Spring 框架中,IOC 容器扮演着核心角色,本文将深入分析 Spring 源码,了解 IOC ...

    spring源码(注释+测试版)

    这份"spring源码(注释+测试版)"提供了Spring框架的源代码,带有注释和测试用例,对于开发者深入理解Spring的工作原理非常有帮助。 1. **spring-core**:这是Spring框架的基础模块,包含了核心的工具类和资源处理...

    spring源码分析(1-10)

    Spring 源代码分析系列涵盖了多个关键模块,包括事务处理、IoC容器、JDBC、MVC、AOP以及与Hibernate和Acegi安全框架的集成。以下是对这些知识点的详细阐述: 1. **Spring 事务处理**:Spring 提供了声明式事务管理...

    spring源代码

    源代码分析对于深入理解其工作原理、优化应用性能以及进行二次开发至关重要。让我们一起深入探究Spring源码中的关键知识点。 首先,Spring的核心组件之一是IoC容器。IoC容器通过反转控制权,使得对象的创建和依赖...

    Spring注解驱动开发第41讲——Spring IOC容器创建源码解析(一)之BeanFactory的创建以及预准备工作(合起

    Spring注解驱动开发第41讲——Spring IOC容器创建源码解析(一)之BeanFactory的创建以及预准备工作(合起来整个过程)

    教你阅读Spring源码资源.zip

    这个压缩包“教你阅读Spring源码资源.zip”包含了调试代码、Spring库和JDK库,提供了学习Spring源码的良好起点。 首先,让我们从源码的主要部分开始。Spring的核心组件包括IoC(Inversion of Control,控制反转)...

Global site tag (gtag.js) - Google Analytics