当前位置: 首页 > news >正文

SpringBoot原理-02.自动配置-概述

一.自动配置

所谓自动配置,就是Spring容器启动后,一些配置类、bean对象就自动存入了IOC容器当中,而不需要我们手动声明,直接从IOC容器中引入即可。省去了繁琐的配置操作。

我们可以首先将spring项目启动起来,里面有一项 里面有一项beans点击application

里面列出了我们当前spring项目中IOC容器里所有的bean对象。我们可以看到有CommonConfig,里面有个bean对象reader,这与我们的代码一致,类型是SAXReader,也一致。

我们发现还有一个CommonConfig类,里面也有一个bean对象commonConfig,为什么还有一个这个bean对象呢?我们可以打开@Configuration注解。

 发现其就是基于@Component注解的,因此这个配置类也是spring的IOC容器的一部分。

还有我们自己定义的bean

除了我们自己定义的类,这里还有spring自动生成的配置类,比如有一个配置类叫GsonAutoConfiguration,里面有一个bean对象gson。类型也是Gson。这个bean是Google当中提供的,用来处理json格式的数据,如果我们想使用,直接使用@Autowired注入进来即可。 我们准备一个单元测试类:

package com.itheima;import org.springframework.boot.test.context.SpringBootTest;/**
* 自动配置原理测试
*/@SpringBootTest
public class AutoConfigurationTests {@AutoWiredprivate Gson gson;@Testpublic void TestJson() {String json = gson.toJson(Result.success());System.out.println(json);}    
}

可以通过@Autowired直接注入这个Gson对象,那是因为IOC容器中存在这个bean对象,那么这个bean对象是哪里来的呢?我们并未没有声明Google提供的这个Gson对象,但可以直接通过@Autowired从Spring容器中注入这个bean对象,这个就是SpringBoot在启动的时候为我们自动配置好的。

后面我们将研究SpringBoot自动配置的原理。研究SpringBoot自动配置的原理就是在研究在SpringBoot项目当中我们引入依赖之后,是如何将依赖jar包当中所定义的bean以及配置类加载到spring的IOC容器中的。

http://www.lryc.cn/news/544857.html

相关文章:

  • 小红书自动评论
  • CosyVoice2整合包 特殊声音标记,声音克隆更逼真,新增批量生成
  • 每天一个Flutter开发小项目 (8) : 掌握Flutter网络请求 - 构建每日名言应用
  • C++Primer学习(4.8位运算符)
  • 在VSCode中使用MarsCode AI最新版本详解
  • 可观测之Tracing-eBPF生态和发展
  • linux 后台执行并输出日志
  • C++ primer plus 第五节 循环
  • 使用Hydra进行AI项目的动态配置管理
  • .bash_profile一些笔记
  • 数据虚拟化的中阶实践:从概念到实现
  • MongoDB安全管理
  • [STM32]从零开始的STM32 DEBUG问题讲解及解决办法
  • 创建Order项目实现Clean Hexagonal架构
  • 【算法】图论 —— Floyd算法 python
  • YOLOv5 + SE注意力机制:提升目标检测性能的实践
  • 基于fast-whisper模型的语音识别工具的设计与实现
  • python中单例模式应用
  • 鸿蒙HarmonyOS 开发简介
  • 2. 在后端代码中加入日志记录模块
  • Linux软硬链接
  • Kali换源
  • Java 大视界 -- Java 大数据机器学习模型的可解释性增强技术与应用(107)
  • SYN Flood的攻击原理及防御
  • Javaweb数据库多表查询 内连接 外连接 子查询
  • 绕过 RAG 实时检索瓶颈,缓存增强生成(CAG)如何助力性能突破?
  • Nginx系列09(Nginx 与其他服务集成、实战项目)
  • nvidia驱动更新,centos下安装openwebui+ollama(非docker)
  • 手机端抓包大麦网抢票协议:实现自动抢票与支付
  • Vue3实现文件上传、下载及预览全流程详解(含完整接口调用)