SpringBoot_自动配置原理

1、SpringBoot特点

1.1、依赖管理

  • 父项目做依赖管理

    依赖管理
    	<!--SpringBoot父工程-->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.7.4</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
    	<!--父工程的父项目-->
         <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.7.4</version>
          </parent>
    
    几乎声明了开发中所有常用的依赖的版本号,自动仲裁机制
    
  • 导入starter开发场景启动器

    1、Starters是当前开发环境所需要的包含一组依赖项的单个依赖。
    2、只要引入starter,这个开发场景所需要的所有常规依赖都会自动导入
    3、SpringBoot所有支持的场景
    https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters
    4、*-spring-boot-starter:第三方提供的开发场景启动器
    5、所有开发场景启动器最底层的依赖
    	<dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
          <version>2.7.4</version>
          <scope>compile</scope>
        </dependency>
    

在这里插入图片描述

  • 无需关注版本号,自动版本仲裁

    1、引入依赖默认都可以不用写版本(前提是父工程依赖中有)
    2、父工程依赖中没有想要的版本号,需要手动配置版本号
    	 <properties>
            <mysql.version>5.1.47</mysql.version>
         </properties>
    	或:
    	 <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>5.1.47</version>
          </dependency>
    
  • 可以修改版本号

    1、查看spring-boot-dependencies里面使用的当前依赖的版本
    2、在当前项目里重写版本号(就近优先、否则使用父工程依赖默认的版本号)
    	 <properties>
            <mysql.version>5.1.47</mysql.version>
         </properties>
    

1.2、自动配置

  • 自动配好Tomcat

    • 引入Tomcat依赖

    • 配置Tomcat

      	<!--在spring-boot-starter-web包内-->  
      	<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <version>2.7.4</version>
            <scope>compile</scope>
          </dependency>
      
  • 自动配好SpringMVC

    • 引入SpringMVC全套组件

    • 自动配好SpringMVC常用组件

       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.23</version>
            <scope>compile</scope>
          </dependency>
      
  • 自动配好Web常见功能,如:字符编码问题

    • SpringBoot帮我们配置好了所有web开发的常见场景
  • 默认的包结构

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

    • 组件与主程序在同一级目录下

      在这里插入图片描述 在这里插入图片描述

    • 组件与主程序不在同一级目录下
      在这里插入图片描述

      在这里插入图片描述

    • 想要改变包扫描路径,可以在@SpringBootApplication上添加scanBasePages属性指定扫描路径

      在这里插入图片描述
      在这里插入图片描述

    • 也可以使用@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan(“com.atguigu”)这三个注解,这三个相当于@SpringBootApplication

      在这里插入图片描述
      在这里插入图片描述- 各种配置拥有默认值

    • 默认配置都会映射到一个类上,配置文件的值最终会绑定到该类上,容器负责创建该类的对象

  • 按需加载所有自动配置项

    • 非常多的starter
    • 引入了哪些开发场景的starter,这个场景的自动配置才会开启
    • SpringBoot所有的自动配置都在spring-boot-autoconfigure包里面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值