IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> `SpringBoot`自动配置原理 -> 正文阅读

[Java知识库]`SpringBoot`自动配置原理

SpringBoot自动配置原理

了解SpringBoot自动配置原理

1.SpringBoot特点

2.容器功能

3.自动配置原理入门

4.开发技巧

SpringBoot特点

1.依赖管理

A.父项目做依赖管理

父项目做依赖管理作用:是控制导入的依赖版本号

父项目管理
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.7</version>
    </parent>

上面的父项目是:
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.6.7</version>
  </parent>


所以:几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制

父项目管理的作用是:引入的依赖的认都可以不写版本,会自动版本号仲裁机制,但是引入非版本仲裁的依赖时,需要写版本号

B.开发导入starter场景启动器

starter场景启动器的作用就是引入所有相关依赖,而父项目管理就是控制依赖的版本号

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>


1、见到很多 spring-boot-starter-* : *就某种场景
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有支持的场景【参考下面地址】
https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter

4、见到的  *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。

5、所有场景启动器最底层的依赖【也就是核心依赖】
C.可以修改默认版本号【重点】

当版本仲裁的版本号不符合我们的开发要求时,可以修改默认的版本号

第一步:先查询父项目管理的版本号

第二步:使用properties版本号覆盖仲裁版本号

第三步:引入依赖

例如:

步骤1、查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。
步骤2、在当前项目里面重写配置
    <properties>
        <mysql.version>5.1.43</mysql.version>
    </properties>

步骤3:
	<dependencys>
       <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
       </dependency>
    </dependencys>

2.自动配置

A.自动配好Tomcat

第一步:引入Tomcat依赖

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.3.4.RELEASE</version>
      <scope>compile</scope>
    </dependency>

第二步:配置Tomcat服务器

B.自动配好SpringMVC

第一步:引入SpringMVC全套组件

第二步:自动配置好SpringMVC常用组件功能,如:注册过滤器[字符编码问题],前端控制器,视图解析器,文件上传解析器,异常处理组件 ,拦截器等等。

SpringBoot帮我们配置好了所有web开发的常见场景

C.默认的包结构【重点】

主程序下的所有包及其下面的所有子包里面的组件都会默认扫描进来,无需以前的包扫描配置

如:主要按照下面的主程序结构就能默认扫描到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sxPmq3J2-1655543159062)(img\1654241565628.png)]

案例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GMNpiM5q-1655543159063)(img\1654242462497.png)]

如果需要改变默认扫描配置的两种方式:

方式一:在@SpringBootApplication注解中的scanBasePackages属性设置扫描配置

@SpringBootApplication(scanBasePackages={"com.haikang"})

方式二:使用另外的三个注解,代替@SpringBootApplication注解,并在@ComponentScan注解中指定扫描路径

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.haikang")
D.各种配置拥有默认值
  • 默认配置最终都是映射到相关指定的类上,如:MultipartProperties文件上传默认配置类
  • 配置文件的值最终绑定指定类上,这个类会在容器中创建对象
E.按需要加载所有自动配置项
  • 由于有非常多的starter,是引入了哪些场景这个场景的自动配置才会开户
  • SpringBoot所有的自动配置功能都在spring-boot-autoconfigure包里面
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-21 21:21:07  更:2022-06-21 21:22:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:41:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码