《Spring揭秘》记录

简介: 《Spring揭秘》记录

IOC部分


  1. IOC不等于IOC容器,即使不使用spring,我们也可以使用IOC,只不过spring提供了IOC容器实现。Spring的IoC容器的功能就包含一个提供依赖注入服务的IoC Service Provider。它提供两方面的支持,业务对象的构建管理和业务对象间的依赖绑定。


  1. BeanFactory或者ApplicationContext定义如何访问容器内管理的Bean的方法,BeanDefinitionRegistry接口负责Bean的注册管理。BeanDefinitionReader或者Scanner的实现类负责通过读取配置文件或者注解得到Bean信息。BeanFactory或者ApplicationContext的实现类最终进行实现。


  1. XmlBeanDefinitionReader:负责读取Spring指定格式的XML配置文件并解析,之后将解析后的文件内容映射到相应的BeanDefinition,并加载到相应的BeanDefinitionRegistry中(在这里是Default-ListableBeanFactory)。这时,整个BeanFactory就可以放给客户端使用了AnnotatedBeanDefinitionReader/ClassPathBeanDefinitionScanner:负责注解的扫描,之后将扫描到的内容映射到相应的BeanDefinition,并加载到相应的BeanDefinitionRegistry中(在这里是Default-ListableBeanFactory)。这时,整个ApplicationContext就可以放给客户端使用了


  1. 配置类:带有 @Configuration 注解的类,如果这个类带有 @Component | @ComponentScan | @Import | @ImportSource 注解,或者内部存在 @Bean 的方法都算配置类


  1. IOC容器启动阶段,只是准备好了Bean对象对应的BeanDefinition,并且都注册到了相应的BeanDefinitionRegistry,此时,Bean都还没有实例化。



  1. BeanFactory在spring-bean包里,ApplicationContext在spring-context包里。


  1. “spring-beans” 和 “spring-context” 都是 Spring Framework 的一部分,这是一个用于构建应用程序的流行的 Java 框架。


“spring-beans” 是 Spring Framework 的一个模块,提供了在 Spring 应用程序中定义和管理 bean 的支持。在 Spring 中,“bean” 是由 Spring IoC 容器管理的对象,可以使用构造函数参数、属性值和方法调用等元数据配置。


而 “spring-context” 则是一个更广泛的模块,提供了 Spring Framework 的核心上下文功能。它包括加载配置文件和管理 bean 的能力,以及许多附加功能,如事件发布和监听、消息源访问和对国际化(i18n)的支持。


因此,总之,“spring-beans” 是处理管理 bean 的 Spring Framework 的特定部分,而 “spring-context” 则提供了管理 Spring 应用程序上下文的更广泛的功能。


相关文章
|
XML 设计模式 Java
什么是bean
什么是bean
|
Java Spring
[java]反射1
[java]反射1
|
缓存 Java 调度
[java]线程池
[java]线程池
|
2天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
12天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
473 199
|
4天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
583 157