美文网首页
SpringBoot自动配置原理

SpringBoot自动配置原理

作者: 奉先 | 来源:发表于2022-11-05 20:54 被阅读0次

    1. 依赖管理

    SpringBoot使用父项目来进行依赖管理 , Maven的父项目通常用来进行依赖管理,只要父项目声明了依赖,子项目引入dependency时,就不用声明版本号了。
    这里,我们的项目的父项目如下,这里的父项目几乎声明了所有开发中需要的jar包的版本 :

    helloword项目的父项目 : 
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
      </parent>
    
    父项目的父项目 :
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.7.5</version>
      </parent>
    

    如果,我们想更改依赖包的版本,可以在本项目的pom.xml中,声明properties标签,更改这个父项目的值。例如,我在自己的项目中改变了mysql-connector的版本。

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <mysql.version>5.1.43</mysql.version>            这里一定要到父项目里去找那个属性名称
     </properties>
    
       <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
        </dependency>
    

    2. Starters

    Starters是进行依赖包管理的工具,选择一个Starters自动获得依赖包,例如helloworld项目引入了spring-boot-starter-web 。

    spring-boot-starter-* 中的*都代表一个场景 ;
    引入了这个场景,就代表自动引入了这个场景需要的所有依赖jar包。

    spring官方提供的starter,都是以spring-boot-starter开头的,也可以自定义starter 。
    第三方的starter 是以这个开头: thirdpartyproject-spring-boot-starter

    3.自动配置 :

    3.1 自动配置Tomcat

    starter-web里配置了Tomcat的依赖包 ;
    自动配置Tomcat 。

    3.2 自动配置SpringMVC

    starter-web里配置了SpringMVC的依赖包 ;
    自动配置SpringMVC。

    3.3 默认的包结构 :

    主程序所在包及其子包所有的组件(例如Controller)都会被扫描进来 ;
    无需再做以前的包配置 。

    3.4 配置默认值:

    springboot给各种配置都给了默认值,默认值都映射到MultipartProperties类上的。
    配置文件的值都会绑定到某个类上,这个类会在容器中初始化。

    相关文章

      网友评论

          本文标题:SpringBoot自动配置原理

          本文链接:https://www.haomeiwen.com/subject/rspptdtx.html