`
sam406
  • 浏览: 57798 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring源码分析之IOC

    博客分类:
  • java
阅读更多
先看两种方式在IOC容器取得bean
1 beanFactory 实现
   ClassPathResource res=new ClassPathResource("beans.xml");
		DefaultListableBeanFactory factory=new DefaultListableBeanFactory();
		 XmlBeanDefinitionReader reader=new XmlBeanDefinitionReader(factory);
		 reader.loadBeanDefinitions(res);
		 Dog d1=(Dog)factory.getBean("dog");


日志
[main] INFO  [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from class path resource [beans.xml]


2通过applictaionContext 方式实现
ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");
 Dog d=(Dog)ac.getBean("dog");

日志
2013-03-16 21:21:36,266 [main] INFO  [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - Loading XML bean definitions from class path resource [beans.xml]
2013-03-16 21:21:36,919 [main] INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] - Pre-instantiatin
g singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@899e53: defining beans 


看看日志,applicationContext似乎就是按照第一个方式得到bean的咯,

现在看下这俩到底有些什么东东咯?

BeanFactory 类是ioc容器最基本的形式,并且提供了IOC容器所应该遵守的最基本的服务契约,勾画了IOC最基本的轮廓。
public interface BeanFactory {

	String FACTORY_BEAN_PREFIX = "&";


	Object getBean(String name) throws BeansException;

	
	 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);

}


APPlicationContext类,看实现,它继承了BeanFactorys,所以具有BeanFactory的功能,这样ApplicationContext的功能就会比BeanFactory丰富咯。它可以支持不同的信息源,由于它扩展了MessageSource,可以从不同的地方访问资源,由于实现了ResourceLoader,
public interface ApplicationContext extends ListableBeanFactory, HierarchicalBeanFactory,
		MessageSource, ApplicationEventPublisher, ResourcePatternResolver {

	
	String getId();

	
	String getDisplayName();

	ApplicationContext getParent();

	AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;

}
分享到:
评论

相关推荐

    Spring源码分析_Spring_IOC

    Spring源码分析_Spring_IOC

    spring源码分析(1-10)

    Spring源代码解析(二):ioc容器在Web容器中的启动 Spring源代码分析(三):Spring JDBC Spring源代码解析(四):Spring MVC Spring源代码解析(五):Spring AOP获取Proxy Spring源代码解析(六):Spring声明式事务处理...

    spring_ioc

    这是spring_ioc部分的内容。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    Spring源码解析4章150页+Spring3.2.4中文注释源码

    3、源码分析-IOC容器的初始化 4、源码分析-IOC容器的依赖注入 5、源码分析-IOC容器的高级特性 三阶段 Spring AOP的涉及原理及具体实践 SpringJDBC的涉及原理及二次开发 SpringMVC框架设计原理及手写实现 四阶段 ...

    spring-IOC-AOP调用大致过程(源码分析)

    spring version: 5.0.0; jdk: 1.8 IOC大致调用顺序(IOC调用的AOP标签解析)

    老王读spring-ioc源码分析&amp;测试代码.zip

    老王读 Spring IoC 系列文章的源码分析&测试代码 Spring IoC 源码分析,帮助大家学习 Spring 源码,更加了解 Spring 的底层 博客专栏地址:https://blog.csdn.net/wang489687009/category_11269905.html

    spring5源码分析视频.txt

    spring5源码分析视频,内容包括源码分析、ioc/aop/事务等等,还有手写spring5框架内容

    spring源码分析

    Spring源代码解析(二):ioc容器在Web容器中的启动 3.Spring源代码解析(三):Spring JDBC 4.Spring源代码解析(四):Spring MVC 5.Spring源代码解析(五):Spring AOP获取Proxy 6. Spring源代码解析(六):Spring...

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    Spring源码分析之IoC.docx 关于线程和线程池的学习与使用.docx 深入理解JVM垃圾回收机制.docx 深入理解多线程实现的另一种方式Callable.docx 红黑树简介.docx 线程死锁及解决办法.docx 线程锁之重入锁.docx 线程间的...

    Spring AOP源码分析.mmap

    有关于Spring,我们最常用的两个功能就是IOC和AOP,前几篇文章从源码级别介绍了Spring容器如何为我们生成bean及bean之间的依赖关系 下面我们接着来看AOP的源码实现。 有关于AOP,我们在面试中也被无数次问到...

    Spring Ioc源码分析系列--自动注入循环依赖的处理.doc

    Spring Ioc源码分析系列--自动注入循环依赖的处理.doc

    Spring Ioc源码分析系列--@Autowired注解的实现原理.doc

    Spring Ioc源码分析系列--@Autowired注解的实现原理.doc

    Spring IoC源码分析1

    1. bean的装配方式 1.表明当前类是一个配置类,是方法bean的源 2.将@Configuration配置的AppConfig的BeanDefinitio

    深入解析Spring IoC源码:核心机制与实践应用

    本文深入探讨了Spring框架中IoC容器的源码机制,涵盖了容器的初始化、Bean工厂的实例化、Bean定义的读取及Spring Bean的生命周期管理。通过精细的分析,本文揭示了AnnotationConfigApplicationContext的实例化过程,...

    深入解析Spring IoC:源码与实践指南

    本文深入探讨了Spring IoC容器的加载过程及其源码实现,揭示了Spring中最为根本的概念之一。这包括从AnnotationConfigApplicationContext的实例化开始,到DefaultListableBeanFactory工厂的建立,再到...

    Spring 源码分析(Bean的初始化)

    Spring 源码分析(Bean的初始化) 前言 本篇文章是个人第一次看spring源码并总结,同时也参考了下面这篇博客。基本也是按照他的思路来理解的。这也算是第一版个人简易理解。也算是窥见spring的冰山一角,之后也会...

    Spring IOC容器实现分析.pdf 下载

    NULL 博文链接:https://ziyoujiedao.iteye.com/blog/262360

    Spring源码学习文档,绝对值得好好研究~~

    Spring源代码解析(二):ioc容器在Web容器中的启动.doc Spring源代码分析(三):Spring JDBC.doc Spring源代码解析(四):Spring MVC.doc Spring源代码解析(五):Spring AOP获取Proxy.doc Spring源代码解析(六):...

Global site tag (gtag.js) - Google Analytics