springboot----关于自动配置的原理以及对约定大于配置的理解的落实

怎么理解 SpringBoot 的约定大于配置? 通过"约定大于配置",Spring Boot能够大幅减少需要处理的配置细节,使开发变得更快捷和高效。这也有助于提高项目的一致性,因为所有的Spring Boot项目都遵循相似的约定,减少了个性化配置的差异。这一理念的核心思想是,通过在开发框架中定义一些默认的约定和规则,从而减少开发人员需要配置的工作,使开发更加高效,同时提高了项目的可维护性和可读性。:Spring Boot使用Maven或Gradle来管理项目依赖,这些构建工具也遵循"约定大于配置"的原则,通过约定的方式简化了依赖管理。 阅读详情

        首先我们知道springboot通过main方法中的SpringApplication.run()运行程序,运行的时候·它会先调用refshContext方法,先刷新容器,然后根据解析注释或者配置文件的形式注册bean。

下面我们来说说它是如何进行解析的

首先在启动类上有一个@SpringBootApplication

我们点进去会发现它是一个组合注解

 我们主要说一下比较重要的注解

首先 @SpringBootConfiguration 

当你点击@SpringBootConfiguration的时候,会发现这也是一个组合注解,里面有一个@Configuration注解,这个注解表示这个类是一个spring的一个配置类

其次是 @ComponentScan

这个就是扫描注解的意思,默认扫描当前类所在的包及其子包下包含的注解,将@Controller/@Service/@Component/@Repository等注解加载到IOC容器中;

最后也是自动配置的核心 @EnableAutoConfiguration

这个我们必须要点进去看一看

可以发现这个注解也是一个组合注解,其中的关键功能由@Import提供,

其导入的AutoConfigurationImportSelector的selectImports()方法通过SpringFactoriesLoader.loadFactoryName()扫描所有具有META-INF/spring.factories的jar包。spring-boot-autoconfigure-x.x.x.x.jar里就有一个这样的spring.factories文件。

spring.factories文件中是一组一组的键值对 key-value形式,通过此文件可以加载得到各种配置类的xxxxAutoConfigurartion   并且每个配置类都有一个 xxxxProperties(每个配置类所对应的封装属性文件)


 

 

 下面我们就来说一下约定大于配置,原先我一直不理解这句活的含义,直至我看到一个网友的评论  "@EnableAutoConfigration 注解会导入一个自动配置选择器去扫描每个jar包的META-INF/xxxx.factories 这个文件,这个文件是一个key-value形式的配置文件,里面存放了这个jar包依赖的具体依赖的自动配置类。这些自动配置类又通过@EnableConfigurationProperties 注解支持通过xxxxProperties 读取application.properties/application.yml属性文件中我们配置的值。如果我们没有配置值,就使用默认值,这就是所谓约定>配置的具体落地点。"

怎么样是不是瞬间明白了,也就是说我们在applicaition.yaml或者application.propertise中对某些属性的进行符合我么要求的设置为就是约定,而springboot为我们自动配置好的配置类就是配置,当我们对他们的属性进行修改时,就是所谓的约定大于配置。



SpringBoot约定大于配置 springboot约定大于配置 阅读详情

相关推荐

Dify安装使用说明

dify可以说是一个功能不错的LLMOps,可以通过dify集中管理模型,可以通过界面创建AI应用,可以上传文档形成知识库,可以创建自定义工具(API),并可以对外提供API。相关功能类似Openai的GPTs或智谱的智能体,其他大厂的大模型也有类似功能,不过貌似只有dify是开源的。这就为个人本地部署AI应用提供了便利。

龙井茶的Sky 1万+

对SpringBoot中约定大于配置的个人理解

什么是约定大于配置

m0_51358164的博客 6317

初探Proxmox Datacenter Manager:统一管理多集群与单节点的利器

本文介绍了Proxmox Datacenter Manager (PDM) 这一统一管理工具,它能有效解决多套Proxmox VE环境(包括集群和单节点)管理碎片化的痛点。文章详细阐述了PDM的核心功能、安装部署步骤,并通过实战演示了如何添加单节点与整个集群,实现资源的集中监控与基础运维,为运维人员提供了高效的集中管理解决方案。

weixin_29217235的博客 159

SpringBoot约定大于配置理解

约定大于配置是一种开发原则,就是减少人为的配置,直接用默认的配置就能获得我们想要的结果。   SpringBoot的约定大于配置,按我的理解是:对比SpringMVC,需要在web.xml里面配置前端控制器,还需要在核心配置文件(*-servlet.xml)中配置视图解析器啥的,更要配置第三方的Tomcat服务器。而SpringBoot就不需要我们配置这些,他内嵌了Tomcat服务器,我们只需要在Maven配置文件(Pom.xml)里面导入SpringMVC所需要的依赖就可以了。   这就是SpringBo

web15185420056的博客 3719

comfyui中的k采样器报错Given groups=1, weight of size [320, 4, 3, 3], expected input[2, 8, 96, 54] to have 4

求助大佬!!!我运行comfyui的时候,k采样器变紫,同时报错显示:

M1226401728的博客 5180

CUDA&PCL 点云体素下采样

CUDA&PCL 点云体素下采样

dayuhaitang1的博客 1268

Spring Boot “约定大于配置”

约定大于配置”是一种简化开发的设计理念。简单来说,就是框架默认提供了常见的配置和行为,开发者只需要按照约定来编写代码,避免了繁琐的配置,只在需要时进行定制和调整。这种理念在Spring Boot中被充分体现,开发者可以专注于业务逻辑的开发,而不必在配置文件中花费大量精力在Spring Boot中,这一理念通过自动配置(Auto Configuration)和默认约定得到了广泛应用,极大地简化了应用的搭建过程。

Mr.W的博客 2375

uniapp - 实现安卓App打包上架应用商店详细教程,详解Hbuilder打包编译apk发布上传到应用市场全流程,提供uniApp云打包、离线打包app、原生本地打包,附带APP备案和安卓证书申请

uni-app,安卓,APP,应用商店,打包编译apk,上架到应用市场,如何打包app并发布到主流应用市场,发布为AndroidApp流程,应用备案,如何申请安卓证书,hbuilder发布安卓apk后怎么上传到各家软件商店,创建app证书,uniapp发行原生APP本地打包安卓APK,详细最全的步骤教程,项目打包成apk,云打包,安心打包,安卓app离线打包,一直审核不通过,被拒绝,不符合规范,上架发布失败,申请安卓证书和获取证书信息,uni-app打包发布安卓Android软件到各大应用商店,腾讯应用

🏆 前端领域优质创作者 1万+

【详解】面试必问:SpringBoot自动配置原理

前言 SpringBoot框架是开发中的一大利器,其简化了spring的xml的配置,遵循了”约定大于配置“的原则,使用注解对常用的配置做默认配置,减少使用xml配置模式。SpringBoot为常用框架封装了大量的starter,比如spring-boot-starter-web会整合springmvc和内嵌的tomcat。SpringBoot在底层封装了默认的配置,修改配置在application.yml全局配置文件。如今在pom.xml文件中引用starter就可以使用这个框架,使用...

CodingLJ 1万+

麻辣香锅病毒分析

Spicy Hot Pot浏览器劫持病毒(麻辣香锅病毒)从2020年初被安全公司监测到,因其病毒模块带有MLXG_KM被安全行业代称麻辣香锅病毒。目前通过各种激活工具传播, 包括暴风激活、小马激活和KMS激活等诸多工具,疑似与下载站进行合作推广此类激活工具。Spicy Hot Pot 是一个浏览器劫持 Rootkit,它会将用户的主页更改为指向恶意软件操作员控制的页面,此外还会将内存转储从机器上传到预定义的服务器,并结合本地更新功能以确保其保持更新。通常浏览器劫持者会通过更改用户主页的恶意可执行文件或注册表

不忘初心,护天下安全! 4788

第42篇FEDGLOSS算法BEYOND LOCAL SHARPNESS:COMMUNICATION-EFFICIENT GLOBALSHARPNESS-AWARE MINIMIZATIONFOR

:用上一轮伪梯度最小化锐度,获取与全局损失最相关的几何信息,引导全局优化趋向更平坦的最小值。效果对比分析:FEDGLOss。

weixin_74009895的博客 526

深入解析SpringBoot自动配置原理:揭开约定大于配置的神秘面纱

在当今的Java开发领域,Spring Boot已经成为了构建微服务和Web应用的首选框架之一。它以“约定大于配置”的理念,极大地简化了Spring应用的开发过程,让开发者能够更加专注于业务逻辑的实现。然而,Spring Boot自动配置的背后原理却常常让许多开发者感到困惑。本文将深入剖析Spring Boot自动配置的原理,揭开这一神秘面纱。

梵心白莲的博客 1065

Vue2 - 详细实现安装西瓜视频 xgplayer 插件详细配置及使用教程,利用西瓜视频播放器播放 mp4、flv、hls 格式视频文件及视频推流(直播或监控摄像头画面),支持移动端H5及PC网站!

vue2,nuxt2,西瓜视频,xgplayer,插件组件,xgplayer-hls,xgplayer-flv,xgplayer-mp4,播放视频点播和直播视频流,自定义播放器样式,截屏,监控视频,vue使用西瓜播放器播放flv、hls、mp4视频,截屏按钮,直播流,报错,黑屏,加载失败,苹果ios不兼容,重连,怎么改样式,很卡,详细教程,监控实时播放推流,倍速播放,在线flv在线推流地址,HLS播放,vue西瓜播放器,vue如何使用西瓜视频插件做直播推流回流,视频点播,flv在线视频流播放,截图功能,利用

🏆 前端领域优质创作者 1万+

深入理解 Spring Boot:核心知识与约定大于配置原则

Spring Boot Starters 是 Spring Boot 提供的一组依赖项,用于快速启动常见的应用程序功能。简单来说,就是一系列依赖关系的集合。例如,如果想要快速启动一个 Spring Boot Web 应用程序,只需在项目中引入这个依赖即可。

沉梦听雨的博客 3424

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

SpringBoot:认认真真梳理一遍自动装配原理

前言 Spring翻译为中文是“春天”,的确,在某段时间内,它给Java开发人员带来过春天,但是随着我们项目规模的扩大,Spring需要配置的地方就越来越多,夸张点说,“配置两小时,Coding五分钟”。这种纷繁复杂的xml配置随着软件行业一步步地发展,必将逐步退出历史舞台。 SpringBoot介绍 来自:百度百科 Spring Boot是由Pivotal团队提供的全新框架,其设计目...

Java笔记虾 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Springboot自动配置原理+面试回答

springboot自动配置面试相关内容在文章最后,小伙伴根据选择观看哦理解springboot自动装配首先要理解什么是约定优于配置,它的设计目的是用来简化spring应用的初始化搭建以及开发过程,从而使开发人员不在需要定义样板化的配置,按照约定进行编程,是一种软件设计范式首先springboot整合的每一个技术点都会对应着两个类一个是XXXProperties,另一个是XXXAutoConfigurationXXXAutoConfiguration:帮我们实例化一些组件。

weixin_45934981的博客 2773

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

springBoot自动配置原理

一、自动装配是什么? 自动装配就是spring容器启动后,一些自动配置类就自动装配的IOC容器中,不需要我们手动去注入。 二、自动配置原理 SPI:是server provider interface 的简写,字面意思是服务发现接口,我理解就是第三方拓展API,他是java提出的,即开箱即用的思想。在spring的生态中已经运用得非常多,比如springMVC中官方推荐的去web.xml的方式,用一个onStart的方法就将dispatcherServlet到IOC的容器中,这也是利用了tomcat的SPI

m0_51167384的博客 1万+

【微服务专题】SpringBoot自动配置简单源码解析

想要搞懂自动装配,需要当前系列前两篇笔记内容打底。不过我上一篇笔记写的不好,没有什么突出的重点,主要也是当时跟着课程看了源码之后,也没发现什么特别的,直到在看自动装配源码的时候,才后知后觉遗漏了一些重要的知识点。但是总体来说不影响这一节课的笔记记录吧。我们说起SpringBoot,总会不自觉的联想到自动配置约定大于配置等标签,但说实在,我是有一点困惑的,这个【约定和配置】到底是什么意思,或者说,它们具体指的是哪些内容啊?!我在想,像我这种,只是用过那么一年多SSM/SSH。

qq_32681589的博客 1768

深度解析SpringBoot自动配置原理:5分钟掌握约定优于配置的设计哲学

在当今的Java开发领域,Spring Boot凭借其高效、便捷的特性成为了众多开发者的首选框架。其中,自动配置功能是Spring Boot的核心亮点之一,它充分体现了“约定优于配置”的设计哲学,极大地简化了开发过程。本文将深入剖析Spring Boot自动配置的原理,帮助你在5分钟内掌握这一重要概念。

梵心白莲的博客 912

Spring Boot的自动配置原理

或深或浅都是缘,坦然面对,告诫自己不要活的太卑微就好。否则,遗失了自己,还被嘲笑没有品味。

IT小辉同学 4019

SpringBoot自动配置原理解析

本文将以广角视觉来剖析SpringBoot自动配置的原理,涉及部分Spring、SpringBoot源码

F & F的博客 3481

SpringBoot自动配置的原理

触发点:@SpringBootApplication中的@EnableAutoConfiguration开启自动配置。候选配置:通过META-INF/spring.factories加载所有可能的自动配置类。条件过滤:通过@Conditional注解筛选出符合当前项目环境(依赖、配置、容器状态)的自动配置类。注册组件:生效的自动配置类通过@Bean注册所需组件,并通过@ConfigurationProperties绑定外部配置。用户优先:用户自定义的 Bean 或配置会覆盖自动配置的默认值。

m0_74776907的博客 1156

第四篇:SpringBoot自动配置——约定大于配置的底层原理

本文深入解析了SpringBoot自动配置的核心原理。传统Spring需要手动配置大量XML,而SpringBoot通过@SpringBootApplication注解实现自动配置,该注解由@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan三个核心注解组成。这种机制大幅简化了Spring应用的配置工作,开发者只需关注业务配置即可。

2503_90542405的博客 443

20190822 SpringBoot自动配置学习总结

springboot学习有感 使用SpringBoot框架也有一段时间了。说是使用过,但实际上是参考网上的教程搭建的。遇到问题并没有过多花心思去思考和理解,因此实际上,并不了解Springboot。 都说SpringBoot的核心思想是——约定大于配置。可是一直没能理解。 于是,看了许多文章,再结合以前遇到的一些问题,以及自己的一些思考,总算理解了为什么说“约定大于配置”是SpringBoot的核...

LLLLEE 的博客 2331

Spring boot起步依赖、自动配置与启动执行流程原理

什么是 Spring Boot? Spring Boot :起步依赖 自动配置 Spring Boot 并不是一个框架,它是一种创建独立应用程序的更简单方法,只需要很少或没有配置(相比于 Spring 来说)。Spring Boot最好的特性之一是它利用现有的 Spring 项目和第三方项目来开发适合生产的应用程序。 spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用,无需打包部署,直接运行 springBoot约定大于配置到底是什么

九曜 6379

SpringBoot的自动配置原理

一、SpringBoot的自动配置原理 SpringBoot 的自动化配置让我们的开发彻底远离了 Spring 繁琐的各种配置,让我们专注于开发,但是SpringBoot 的自动化配置是怎么实现的呢?下面为你揭开 SpringBoot 自动化配置的神秘面纱。 所以今天来讲讲SpringBoot是如何实现自动配置的~ 1.1三个重要的注解 我们可以发现,在使用main()启动SpringBoot的时...

ityqing的博客 1930
上一篇: springboot关于Rest风格请求的使用
下一篇: springboot---yaml语法
J_upp
博客等级 码龄5年 1275粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值