专栏首页java一日一条Spring核心--容器详解

Spring核心--容器详解

Spring容器是什么

从概念上讲:Spring 容器是 Spring 框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并由其通过IoC技术管理,串联他们的整个生命周期从创建到销毁。

从具象化讲:通过概念的描述有些同学还是一脸懵逼,在我们的项目中哪个东西是Spring容器?在java项目中,我们使用实现了org.springframework.context.ApplicationContext接口的实现类。在web项目中,我们使用spring.xml——Spring的配置文件。

Spring容器的功能包括:

Spring容器的类别及其特点:

具体的源码实现:

创建Spring Bean 是典型的工厂模式

BeanFactory 是最顶层的一个接口类,定义了IOC 容器最基本功能规范。

BeanFactory 有个重要的子类

ListableBeanFactory、HierarchicalBeanFactory、AutowireCapableBeanFactory

从类图中可以看到最终的默认实现类是DefaultListableBeanFactory,实现了所有的接口

定义这么多层接口的目的:每个接口都有它使用的场合,主要是为了区分在Spring 内部操作对象的传递和转化过程,对对象数据访问所做的限制

ListableBeanFactory 这些Bean 是可列表化

HierarchicalBeanFactory 表示Bean是有继承关系的

AutowireCapableBeanFactory bean的自动装配

三个接口总结:Bean的集合、Bean之间的关系、Bean行为

BeanFactory 只定义了IOC 容器的基本行为,不关心bean 是如何定义加载的。 IOC 容器具体的实现需要了解GenericApplicationContext、ClassPathXmlApplicationContext等

BeanDefinition 描述了Spring IOC容器中bean 之间的关系

Bean 的解析主要是对配置文件进行解析,这个过程较复杂,功能被分的很细,这个解析过程就是通过BeanDefinitionReader 来完成

到这里对Spring 框架体系有了一个基本了解,后续会持续更新

本文分享自微信公众号 - java一日一条(mjx_java)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-06-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring IOC核心容器

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    多凡
  • Spring源码之核心容器

    SpringBean的创建是典型的工厂模式,这一系列的Bean工厂,也即IOC容器为开发者管理对象间的依赖关系提供了很多便利和基础服务,在Spring中有许多的...

    Java阿呆
  • spring框架 AOP核心详解

    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例...

    java架构师
  • Spring 的核心组件详解

    Bean组件是 Spring核心中的重点,Spring 就是面向Bean编程的(Bean Oriented Programming:BOP)就像Object 对...

    Java架构师必看
  • 译 - Spring 核心技术之 Spring 容器扩展点

    本文内容选自 Spring Framework 5.1.6.RELEASE 官方文档中 core 部分的 1.8 小节,简单介绍了如何利用 Spring 容器扩...

    闻人的技术博客
  • Spring认证-Spring核心基础教程详解?

    Spring 框架是一个开源 Java 平台,它为非常容易和非常快速地开发健壮的 Java 应用程序提供了全面的基础设施支持。Spring 框架最初由 Rod ...

    IT胶囊
  • Spring Boot 核心配置文件详解

    用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件

    Java技术栈
  • Spring的核心之IoC容器创建对象

    Spring的Ioc容器,是Spring的核心内容:   作用:对象的创建和处理对象的依赖关系。 Spring容器创建对象有以下几种方式:   1:调...

    别先生
  • Spring Boot 最核心的 3 个注解详解

    最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过。

    Java技术栈
  • Spring Boot 最核心的 3 个注解详解

    最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过。

    用户5224393
  • QA模式详解Spring核心(一)DI和IOC

    本文并非教程一类的文章,而是偏向于Spring底层,适合有一定框架编程经验的同学阅读。在这个系列的文章中,我会融合同学们在面试中常见的问题,如什么是IOC容器,...

    roobtyan
  • 1.5.Spring Boot核心注解@EnableAsync 详解 异步任务

    @EnableAsync 注解启用了 Spring 异步方法执行功能,在 Spring Framework API 中有详细介绍。

    itjim
  • Spring 和 SpringBoot 最核心的 3 大区别,详解!

    对于 Spring和 SpringBoot到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot的我当时也是一头雾水,随着经验的积累、我慢慢理解...

    好好学java
  • PushConsumer核心参数详解

    默认AllocateMessageQueueAveragely,Rebalance(轮询)算法实现策略。

    JavaEdge
  • Mycat 核心配置详解

    由上图可以看到 Mycat 的核心配置文件均采用xml格式,这几个配置文件的用途如下:

    端碗吹水
  • AQS 锁核心类详解

    AQS(AbstractQuenedSynchronizer 抽象队列同步器) 是一个用来构建锁和同步器的框架,使用 AQS能简单且高效地构造出应用广泛的大量的...

    Java架构师必看
  • 1.10.Spring Boot核心注解@Spring常用注解

    @Configuration 声明当前类为配置类,相当于xml形式的Spring配置(类上)

    itjim
  • Spring的核心模块解析

    Spring框架是一个轻量级的集成式开发框架,可以和任何一种框架集成在一起使用,可以说是一个大的全家桶。Spring从1.x发展到现在的5.x可以说是越来越强大...

    Java技术栈
  • 1.3.Spring Boot核心注解@DubboComponentScan

    通过 @EnableDubbo 可以在指定的包名下(通过 scanBasePackages),或者指定的类中(通过 scanBasePackageClasses...

    itjim

扫码关注云+社区

领取腾讯云代金券