《Spring揭秘》记录

简介: 《Spring揭秘》记录

IOC部分

  1. IOC不等于IOC容器,即使不使用spring,我们也可以使用IOC,只不过spring提供了IOC容器实现。Spring的IoC容器的功能就包含一个提供依赖注入服务的IoC Service Provider。它提供两方面的支持,业务对象的构建管理和业务对象间的依赖绑定。
  2. BeanFactory或者ApplicationContext定义如何访问容器内管理的Bean的方法,BeanDefinitionRegistry接口负责Bean的注册管理。BeanDefinitionReader或者Scanner的实现类负责通过读取配置文件或者注解得到Bean信息。BeanFactory或者ApplicationContext的实现类最终进行实现。
  3. XmlBeanDefinitionReader:负责读取Spring指定格式的XML配置文件并解析,之后将解析后的文件内
    容映射到相应的BeanDefinition,并加载到相应的BeanDefinitionRegistry中(在这里是Default-
    ListableBeanFactory)。这时,整个BeanFactory就可以放给客户端使用了
    AnnotatedBeanDefinitionReader/ClassPathBeanDefinitionScanner:负责注解的扫描,之后将扫描到的内容映射到相应的BeanDefinition,并加载到相应的BeanDefinitionRegistry中(在这里是Default-
    ListableBeanFactory)。这时,整个ApplicationContext就可以放给客户端使用了
  4. 配置类:带有 @Configuration 注解的类,如果这个类带有 @Component | @ComponentScan | @Import | @ImportSource 注解,或者内部存在 @Bean 的方法都算配置类
  5. IOC容器启动阶段,只是准备好了Bean对象对应的BeanDefinition,并且都注册到了相应的BeanDefinitionRegistry,此时,Bean都还没有实例化。

  6. BeanFactory在spring-bean包里,ApplicationContext在spring-context包里。
  7. “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 应用程序上下文的更广泛的功能。
  8. 测是
相关文章
|
安全 Java API
手把手带你实现第三方应用登录
手把手带你实现第三方应用登录
1908 0
手把手带你实现第三方应用登录
|
缓存 Linux
lscpu命令详解
`lscpu` 是Linux系统下用于显示CPU架构和相关详情的命令,帮助用户了解处理器配置,适用于性能诊断、系统调优和软件部署规划。输出包括架构(如x86_64或ARM)、操作模式、字节顺序、CPU核心和线程信息、NUMA节点等。选项如 `-a` 显示所有CPU信息,`-b` 和 `-c` 分别显示在线和离线CPU信息。信息来源包括sysfs和`/proc/cpuinfo`文件。
1331 2
|
8天前
|
Java Windows
windows版jdk版本管理工具
JC-jEnv 是 Windows 下轻量级 Java 版本管理工具,支持本地 JDK 管理、远程一键安装(如 `jvms install 21.0.4`)、快速切换(`jvms switch`)及项目级版本隔离,操作简洁,无需手动配环境变量。
151 4
|
对象存储
关于uniapp解决单/多文件上传的解决思路
关于uniapp解决单/多文件上传的解决思路
1170 0
|
4月前
|
SQL Oracle 关系型数据库
迁移MySQL数据到Oracle实践记录
本文介绍SQL Developer迁移第三方数据库至Oracle的三种方式:①全库迁移(步骤繁杂、易报ORA-00942等错);②右键“Copy To Oracle”单表迁移(支持结构+数据,百兆级高效);③结合DBeaver导CSV+SQL Dev建表导入(500MB内可行)。推荐中小规模表级迁移。
339 0
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
2607 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
算法 Java
JVM进阶调优系列(4)年轻代和老年代采用什么GC算法回收?
本文详细介绍了JVM中的GC算法,包括年轻代的复制算法和老年代的标记-整理算法。复制算法适用于年轻代,因其高效且能避免内存碎片;标记-整理算法则用于老年代,虽然效率较低,但能有效解决内存碎片问题。文章还解释了这两种算法的具体过程及其优缺点,并简要提及了其他GC算法。
 JVM进阶调优系列(4)年轻代和老年代采用什么GC算法回收?
|
Nacos
Nacos 配置文件属性说明
Nacos 配置文件属性说明
592 0
|
存储 缓存 NoSQL
【缓存】J2Cache —— 基于内存和 Redis 的两级 Java 缓存框架的使用方法
【缓存】J2Cache —— 基于内存和 Redis 的两级 Java 缓存框架的使用方法
1054 0