首页 > 其他分享 >SpringBoot - [04] 自动装配原理

SpringBoot - [04] 自动装配原理

时间:2024-05-09 15:48:07浏览次数:14  
标签:装配 SpringBoot 04 Spring 配置 Boot 自动 注解

题记部分

 

  Spring Boot的自动装配(Auto-Configuration)原理是其简化Spring应用开发的关键特性之一,它能自动配置Spring框架及第三方库,极大地减少了手动配置的工作量。以下是Spring Boot自动装配的核心原理和步骤:

(1)条件化配置(Conditional Configuration):
  Spring Boot利用Spring框架的条件化配置能力,通过`@Conditional`注解及其派生注解来判断是否需要执行某个配置类。这意味着配置只会在满足特定条件时生效,比如存在特定的类或bean,或者配置文件中有特定的属性设置。

(2)@EnableAutoConfiguration注解:
  该注解通常在Spring Boot应用的主类上使用,它通过导入AutoConfigurationImportSelector类来触发自动配置过程。这个类负责查找并加载所有符合条件的自动配置类。

(3)spring.factories文件:
  Spring Boot在启动时会扫描所有jar包下的META-INF/spring.factories文件。这个文件是一个简单的properties格式文件,列出了自动配置类与其它组件的映射关系。每个自动配置类都对应着一些条件判断逻辑,确保只在适当的时候生效。

(4)自动配置类:
  自动配置类通常包含一系列的@Bean定义以及条件注解,用于创建和配置Spring beans。这些类中的逻辑基于类路径扫描、环境变量、配置属性等来决定如何配置应用。

(5)条件注解:
  如@ConditionalOnClass@ConditionalOnMissingBean@ConditionalOnProperty等注解用于控制自动配置类的激活条件,确保只有当应用环境中满足特定条件时,相关的配置才会被执行。

(6)外部配置合并:
  Spring Boot支持外部化配置,自动配置会考虑application.propertiesapplication.yml等配置文件中的设置,允许用户覆盖默认配置。

(7)Starter POMs:
  Spring Boot提供了许多starter POMs,这些POMs不仅引入了必要的依赖,还包含了相应的自动配置逻辑,使得添加新功能变得极为简单,只需加入对应的starter依赖即可。

  综上所述,Spring Boot的自动装配机制通过智能地分析应用的类路径、环境、配置等信息,自动为应用提供合理的默认配置,同时保持高度的可定制性,让开发者能够快速搭建和运行应用。

 

 

 

— 要养成终身学习的习惯 —

标签:装配,SpringBoot,04,Spring,配置,Boot,自动,注解
From: https://www.cnblogs.com/houhuilinblogs/p/18182048

相关文章

  • Springboot - [05] 彩蛋~
    题记部分  彩蛋一:如何更换Springboot启动时的logo(1)访问https://www.bootschool.net/ascii-art/search,搜索到佛祖的ASCII艺术字(图)集(2)将内容拷贝到src/main/resources下的文件中,文件名称为banner.txt(3)启动SpringBoot的应用  彩蛋二:  彩蛋三:   —要......
  • SpringBoot系列---【解决springboot应用突然无法启动了,日志中也没有错误日志】
    解决springboot应用突然无法启动了,日志中也没有错误日志1.问题描述五一过完了,来了之后突然发现一个微服务起不来了,本地启动没问题,但是上测试环境就是无法启动,但是查看日志,日志中也没有报错信息。怀疑是网络策略的问题,curl去试了一下数据库,as,redis,zk等等中间件,发现都通,最后又试了......
  • 04 总结三傻排序
    我的总结:插入排序:扑克牌,右侧往左侧挪,右侧无序变到左侧有序。冒泡排序:两两比较,大的往右侧挪。像水冒泡一样。选择排序:遍历一遍,选择最小的,每次挪最小的,放到左侧。形成有序。   再看一眼动图:插入排序:    冒泡排序:     选择(最小的)排序: 参考资料:......
  • IR2104详解
    目录基础知识NMOS原理半桥控制原理IR2104简介示例电路引脚定义电路原理详解自举升压死区控制总结链接引入:IR2104是我上手的第一个半桥栅极驱动芯片,使用两片IR2104就可以搭建一个全桥电路控制电机的正反转。然而由于不懂其中原理,在......
  • springboot整合mybatis自动生成框架
    1、添加自动生成配置在根目录下创建:mybatis-generate.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN""http://mybat......
  • springboot整合mybatis-plus手动配置
    1、添加依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.6</version></dependency><dependency>......
  • 美团二面:SpringBoot读取配置优先级顺序是什么?
    引言SpringBoot作为一种轻量级的Java应用程序框架,以其开箱即用、快速搭建新项目的特性赢得了广大开发者的青睐。其核心理念之一就是简化配置过程,使开发者能够快速响应复杂多变的生产环境需求。为了实现这一点,SpringBoot支持丰富的外部化配置机制,允许应用程序根据不同的部署环境......
  • 代码随想录算法训练营第第一天 | 704. 二分查找 、27. 移除元素
    704、二分查找题目链接:https://leetcode.cn/problems/binary-search/文章讲解:https://programmercarl.com/0704.二分查找.html视频讲解:https://www.bilibili.com/video/BV1fA4y1o715`varsearch=function(nums,target){letleft=0;letright=nums.length;letmi......
  • 解决SpringBoot内置tomcat出现error:An incompatible version [1.2.16] of the Apache
    问题描述在运行SpringBoot时出现一个error2024-05-08T20:52:06.512+08:00ERROR20752---[springboot3-003-demo][main]o.a.catalina.core.AprLifecycleListener:Anincompatibleversion[1.2.16]oftheApacheTomcatNativelibraryisinstalled,wh......
  • [20240426]sql_id 转换hash_value.txt
    [20240426]sql_id转换hash_value.txt--//以前写的脚本,转换sql_idtohash_value.遇到问题:$cats2p.sh#!/bin/bash#convertsql_idtohash_valueodebug=${ODEBUG:-0}sql_id="$*"v1=$(echo$sql_id|tr$(echo{0..9}{a..z}|tr-d'eilo')$(echo{0..9}{a.......