• [刘阳Java]_了解BeanFactory_第4讲


    为什么说我们这篇文章只是说了解一下BeanFactory。因为BeanFactory内在的机制与代码实现实在是太强大了,在这一点我确实不敢滥竽充数。

    1. 那么我们又如何去了解BeanFactory,大家可以从它所具备的功能和作用去了解。

    • 我们都知道Spring框架有一个明显的作用就是它的IoC容器,所谓的IoC容器就是帮我们自动new对象,对象的生命周期交给Spring管管理
    • 而在Spring官方文档中谈到的Bean,其实就是我们说的由Spring IoC容器new出来的对象。这一点我个人认为大家可以注意一下
    • 在Spring框架中真正的能够new一个对象能够提供对象之间的依赖关系其幕后使者就是BeanFactory

    2. BeanFactory只是一个接口,那么要初始化BeanFactory则需要它的子类。例如下面的代码

    BeanFactory beanFactory = new ClassPathXmlApplicationContext("spring.xml");

    但是通过上面的代码我们好像又看到BeanFactory的另一个作用,可能这个作用能够代表Spring框架启动的流程

    • 首先是读取Spring的xml配置文件,然后解析xml文件中的各种bean的定义,将xml文件中的每一个<bean />元素分别转换成一个BeanDefinition对象,其中保存了从配置文件中读取到的该bean的各种信息
    • 然后通过BeanDefinitionRegistry将这些bean注册到beanFactory中
    • 最后实例化阶段主要是通过反射或者CGLIB对bean进行实例化

    3. 了解BeanFactory中的getBean方法

    • getBean(String name): 获取对象,但是需要类型转换
    • getBean(String name, Class<T>clazz):获取对象,无需类型转换
    • 需要注意的地方
      • 如果使用getBean(String name, Class<T>clazz)方法一定要关注Spring框架版本,在spring.4.x版本中提供了getBean对泛型的支持
      • 如果使用spring.4.x版本,需要包含下面的jar包(spring-core.jar, spring-beans.jar, spring-context.jar, spring-expression.jar, common-logging.jar
  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/liuyangjava/p/6666859.html
Copyright © 2020-2023  润新知