`
Java_KAbanban
  • 浏览: 36547 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BeanFactory定了IoC的基本特性

阅读更多
   我们知道BeanFactory定义了Ioc容器的基本功能规范,Ioc容器的基本接口是有BeanFactory来定义的,也就是说BeanFactory 定义了Ioc容器的最基本的形式,并且提供了Ioc容器所应该遵守的最基本的服务契约。与此同时,BeanFactory也是我们使用Ioc容器所应该遵守的最底层和最基本的编程规范。在spring中BeanFactory只是一个接口,并没有给出容器的具体实现,而我们可以从各种spring中给出的具体类中,比如DefaultListableBeanFactory 、XmlBeanFactory、ApplicationContext等实现类,都可以看成是容器的附加了某种功能的具体实现。BeanFactory是怎样定义IoC容器的基本接口的呢???
   用户在使用容器时,可以使用转义字符“&”来得到FactoryBean本身,用来区分通过容器来获取FactoryBean产生的对象和获取FactoryBean本身。例如,myJndiObject是一个FactoryBean,那么使用&myJndiObject得到的是FactoryBean,而不是myJndiObject这个FactoryBean产生的对象。
  BeanFactory接口设计了getBean方法,这个方法是使用IoC容器API的主要方法,通过此方法,可以获得IoC容器管理的Bean。如果需要在获取Bean时对Bean的类型进行检查,BeanFactory接口定义了带有参数的getBean方法。当获取bean时,需要获取的Bean是prototype类型的,用户还可以为这个prototype类型的Bean生成指定构造函数的对应参数。这使得在一定程度上可以控制生成prototype类型的Bean。有了BeanFactory的定义,用户可以执行以下操作:
   1.通过接口方法containsBean让用户能够判断容器是否含有指定名字的Bean。
   2.通过接口方法isSingleton来查询指定名字的Bean是否是Singleton类型的Bean。对于Singleton属性,用户可以在BeanDefinition中指定。
   3.通过接口方法isPrototype来查询指定名字的Bean是否是Prototype类型的Bean.对于prototype属性,用户同样可以在BeanDefinition中指定。
   4.通过接口方法isTypeMatch来查询指定名字的Bean的Class类型是否是特定的Class类型。这个Class类型可以由用户自己指定。
   5.通过接口方法getType来查询指定了名字的Bean的Class类型。
   6.通过接口方法getAliases来查询指定了名字的Bean的所有别名,这些别名都是用户在BeanDefinition中定义的。
BeanFactory定义这些方法,勾画出了IoC容器的基本特性。
 
分享到:
评论

相关推荐

    java8源码-Spring5:Spring5新特性

    BeanFactory:IOC容器基本实现,Spring内部使用接口 加载配置文件时候不会创建对象,获取对象时后才会创建。 ApplicationContext:BeanFactory的子接口,提供更多强大的功能,一般是开发人员使用 加载配置文件时候会...

    java查看sun包源码-learning-spring:Spring框架讲解

    BeanFactory:IOC容器的基本实现,在调用getBean()方法时才会实例化对象 ApplicationContext:提供了更多的高级特性,在加载配置文件后就会实例化对象。是BeanFactory的子接口 BeanFactory是Spring框架的基础设施,...

    Spring高级之注解驱动开发视频教程

    从应用场景分析,到基本用法的入门案例,再到高级特性的分析及使用,最后是执行原理的源码分析。让学生通过学习本套课程不仅可以知其然,还可以知其所以然。最终通过一个综合案例,实现灵活运用Spring框架中的各个...

    spring4.3.2参考文档(英文)

    BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 ...

    Spring面试题

    BeanFactory 使用控制反转 (IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 ☆ Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如...

    高级开发spring面试题和答案.pdf

    谈谈Spring IOC的理解,原理与实现? bean的生命周期,详细看上面 SpringBoot自动装配的过程的原理: spring的缓存; spring是如何解决的循环依赖; BeanFactory和FactoryBean有什么区别; Spring中用到的设计模式; ...

    Spring框架分为哪七大模块

    Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。 2.Spring...

    Spring_notes

    BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。 应用上下文(Spring Context)  Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,如...

    java-advance:java进阶,包含 常用设计模式、线程和并发、spring核心代码、mybatis核心代码、springboot2.0、springcloud G版本、docker的使用、各类面试题

    java进阶源码分析专题常用设计模式线程与并发锁的使用深度理解synchronized、volatile、cas手写ASQSpring5IOC容器设计原理及高级特性AOP设计原理FactoryBean与BeanFactorySpring事务处理机制Spring JDK动态代理...

    积分管理系统java源码-knowledge:这是我的知识,包括我所有已知的

    IOC容器设计原理及高级特性 AOP设计原理 FactoryBean和BeanFactory Spring事务处理机制 Spring JDBC Spring MVC九大组件 手动实现Spring MVC Spring5新特性 Mybatis 代码自动生成器 mybatis关联查询和嵌套查询 缓存...

    开源框架 Spring Gossip

    ApplicationContext 除了具备如 BeanFactory 基本的容器管理功能之外,并支援更多应用程式框架的特性,像是资源的取得、讯息解析、事件的处理与传播。 Resource 的取得 解析文字讯息 倾听事件 ...

    javasnmp源码-java_review:复习资料

    IOC AOP,aop如何实现 ​ ​ JDK动态代理和cgLib动态代理 ​ ​ ​ sprin创建bean过程 ​ ​ SpringMVC常用注解 ​ springMVC处理请求流程/工作流程 ​ ​ SpringMVC @RequestParam,@PathParam...

    Spring.3.x企业应用开发实战(完整版).part2

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    Spring3.x企业应用开发实战(完整版) part1

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    第24次课-1 Spring与Hibernate的整合

    Spring提供了很多IoC特性的支持,方便处理大部分典型的Hibernate整合问题。 如:SessionFactory的注入、HibernateTemplate的简化操作、DAO的支持等。 为了更好地与持久层框架整合,Spring还提供了统一的异常处理体系...

    Spring API

    3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 3.8.3. 事件 3.8.4. 底层资源的访问 3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10....

    Spring中文帮助文档

    3.8.1. BeanFactory 还是 ApplicationContext? 3.8.2. 利用MessageSource实现国际化 3.8.3. 事件 3.8.4. 底层资源的访问 3.8.5. ApplicationContext在WEB应用中的实例化 3.9. 粘合代码和可怕的singleton 3.10....

    J2EE应用开发详解

    246 14.5.2 CORBA和RMI的互操作 247 14.6 小结 248 第15章 Spring框架 249 15.1 Spring 2.0的体系结构 249 15.2 Ioc容器 250 15.2.1 BeanFactory 250 15.2.2 ApplicationContext 252 15.2.3 Beans的生命周期过程 253...

    JAVA核心知识点整理(有效)

    1. 目录 1. 2. 目录 .........................................................................................................................................................1 JVM ........................

Global site tag (gtag.js) - Google Analytics