SpringBoot-依赖管理和自动配置

依赖管理

  1. spring-boot-starter-parent的父项目
XML 复制代码
<!--几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制-->
<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-dependencies</artifactId>
	<version>2.3.4.RELEASE</version>
</parent>
  1. starter场景启动器
  • 开发什么场景,导⼊什么场景启动器,场景启动器⾃动把这个场景的所有核⼼依赖全部导⼊
  • maven依赖传递原则。A-B-C: A就拥有B和C
  • spring-boot-starter-* : *就代表某种场景,SpringBoot所有支持的*场景
  • 引入starter-*,这个场景的所有常规需要的依赖都自动引入
  • *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器
  1. 版本号控制
  • 引入依赖默认都可以不写版本,父项目spring-boot-starter-parent已经将所有依赖设置默认版本,可以通过复写properties标签更改版本号
  • 引入非版本仲裁的jar,要写版本号。

自动配置

  1. 自动配置Tomcat
  • 想要自动配置好Tomcat就需要引入Tomcat依赖
XML 复制代码
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-tomcat</artifactId>
	<version>2.3.4.RELEASE</version>
	<scope>compile</scope>
</dependency>
  • 在依赖管理引入web场景的时候,就已经引入了Tomcat场景
XML 复制代码
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 引入web依赖后自动配完成SpringMVC
  • 前端控制器DispatcherServlet:拦截所有的前端的请求
  • 字符编码characterEncodingFilter:解决返回中文字符串乱码问题
  • 视图解析器viewResolver:对返回的视图进行渲染呈现
  • 文件上传解析器multipatResolver:文件上传
java 复制代码
//返回IOC容器
ConfigurableApplicationContext run 
            = SpringApplication.run(MainApplication.class, args);
//查看容器里面的组件
String[] names = run.getBeanDefinitionNames();
for (String name : names) {
	System.out.println(name);
}
  1. 按需自动配置
  • SpringBoot所有的自动配置都依赖@EnableAutoConfiguration
  • SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面
  • 引入了哪些场景,这个场景的自动配置才会开启,各种配置拥有默认值
    • ServerProperties 绑定了所有Tomcat服务器有关的配置
    • MultipartProperties 绑定了所有⽂件上传相关的配置
    • 默认值参照官⽅⽂档:或者参照 绑定的 属性类。
  1. 自动配置原理

https://blog.csdn.net/zl979899/article/details/122391622

包扫描规则

  • @SpringBootApplication 标注的类就是主程序类
  • SpringBoot默认只会扫描主程序类所在的包及其下⾯的子包,自动的component-scan功能
  • 自定义扫描路径
    • @SpringBootApplication(scanBasePackages = "com.xxx")
    • @ComponentScan("com.xxx") 直接指定扫描的路径
相关推荐
2601_962055975 小时前
跟据spring boot版本,查看对应的tomcat,并查看可支持的tomcat的版本范围
spring boot·后端·tomcat
EXI-小洲5 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_961901706 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
Lost of 程序猿6 小时前
ASP.NET Core API 幂等性设计深度实战:从一次重复申领事故说起
后端·asp.net
QQ_21696290968 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
————A8 小时前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式
郑州光合科技余经理9 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
IT_陈寒9 小时前
Vue的嵌套组件竟然吃掉了我的事件?
前端·人工智能·后端
2601_9621284110 小时前
SpringBoot篇(缓存层)
java·spring boot·缓存
大辉狼_音频架构10 小时前
进阶:从源码编译 SOF 固件与 topology
后端