springBoot-入门
2025-4-20
| 2025-4-20
Words 1020Read Time 3 min
type
status
date
slug
summary
tags
category
icon
password
notion image
image-20230327211558312

约定大于配置

约定优于配置,如果按照约定好的来,那么就不需要配置,比如,代码和表字段的映射,如果都是驼峰命名法,那么就不需要指定字段和属性的映射关系是什么,只有不是按照约定来的时候,才需要配置字段对应的属性是什么。
约定其实就是一种规范,是一种通用性,这种通用性就可以减少麻烦,事情就会变得简单。

误解:

他不是说约定的优先级要比配置的高,而是现在开发效率上讲的,默认是按照约定来的,如果你不按照约定,有其他特殊情况,那就可以用配置来完成,这点很容易被误解。

依赖管理

在父版本依赖中自动指定了很多依赖版本
notion image
notion image

starter场景启动器

start场景器代表一种场景的开发,比如要进行web开发,redis开发,mq开发场景等
第三方启动器,第三方的启动器名称会有所不同
notion image
image-20230327220428712

自动配置

springBoot自动配置了哪些
tomcat,springMVC,自己写的HelloController等。
notion image
image-20230327221123368

扫描包:

以前在配置ssm的时候,需要配置默认扫描包,使用springBoot时候他是默认配置了扫描包,比如下面的包,MyApplication是主程序,那么他的父包,也就是myapplication下面的包和所有子包都会被扫描进去,也就是说,配置的默认扫描包是以主程序作为分界线的。
既然是默认配置,那一定是可以修改的,这就体现到了约定优于配置的概念了,我们约定了一个默认扫描包的机制,现在约定的满足不了我的需求了,那我就再进行配置。
notion image
image-20230401195050036

演示默认扫描包之外的类

下面是在默认扫描包之外的类,所以访问的时候是扫描不到的。
notion image
notion image
notion image

改变默认配置扫描包:

在主类的SpringBootApplication里面有一个默认的属性,basePackages,是一个数组类型,这个属性可以重新指定要扫描的包。
notion image
notion image

除了这些配置,我们还可以修改哪些默认配置?

演示MultipartProperties
指定上传文件大小为5MB,debug发现这里已经设置为5MB了,往下翻,可以看到,默认为1MB,这里也体现了约定大于配置,约定的为1MB,也就是默认的,如果想修改,就在配置文件中进行配置。
notion image
notion image
notion image

自定义配置

这就是nacos所集成的,可以在properties里面自定义k-v值,使用${key}读取。
notion image
notion image

springBoot是如何读取properties配置文件的

在ConfigFileApplicationListener这个类下面读取的,全局搜索这个文件,可以得到下面的路径,classPath代表文件夹下面的路径,file代表项目根目录,下面的默认配置表示可以把路径写在:resource下面,resource/config/下面,项目根目录下面,根目录下的/config下面,项目根目录config下面的所有子路径。
ps:上面的路径都配置过,都可以完成。
notion image

自动配置按需加载

什么是按需加载,引入了某个场景的starter,会引入其他相关的jar包,没有引入相关的jar,这好像是一句废话。。。,如果需要额外的jar包,则需要重新引入。
springBoot所有的自动配置功能是放在spring-boot-autoConfiguation包里面的,比如前面提到的Multipart文件,MultipartProperties读取配置文件,之后又在MultipartProperties中把这个对象注入到autoConfiguation里面。
notion image
notion image
SpringBoot-文件上传RSA-加密算法
Loading...