底层注解--@ConfigurationProperties配置绑定

上篇:基础入门--SpringBoot2程序

1、SpringBoot特点

1.1、依赖管理

自定义引入的依赖管理


        org.springframework.boot
        spring-boot-starter-parent
        2.3.4.RELEASE

底层注解--@ConfigurationProperties配置绑定_第1张图片

我们在父pom文件点击进去查看发现,又有一个父项目 

底层注解--@ConfigurationProperties配置绑定_第2张图片 其实在这个父项目底层发现:几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制

如:


    5.15.13
    2.7.7
    1.9.82
    2.12.0
    1.9.6
    3.16.1
    4.0.6
    4.0.3
    2.1.4
    3.1.0
    1.10.14
    2.8.5
    4.6.1
    1.5.1
    1.14
    2.7.0
    3.10
    1.6
    2.8.1
    3.0.8
    11.5.4.0
    1.0.10.RELEASE
    10.14.2.0
    4.1.12.1
    2.10.6
    3.8.1
    7.6.2
    2.2.0
    1.6.0
    1.2.5
    6.4.4
    2.3.30
    3.0.1
    3.0.3
    2.3.3
    2.5.13
    2.8.6
    1.4.200
    2.2
    3.12.9
    1.3.2
    5.4.21.Final
    6.1.5.Final
    3.4.5
    2.5.1
    2.40.0
    4.1.4
    4.5.12
    4.4.13
    10.1.8.Final
    2.18
    2.11.2
    1.2.2
    1.3.5
    2.0.3
    1.1.6
    1.0.2
    1.6.5
    2.2.3
    4.0.4
    1.2.7
    1.3.3
    2.0.2
    1.1.2
    2.1.6
    2.3.3
    1.4.2
    2.3.3
    3.1.2
    1.2.0
    1.3.2
    1.1.1
    2.3.1
    2.3.1
    2.0.1
    1.1.4
    1.0
    1.6.2
    1.0.3
    2.2
    1.3
    2.0.1.Final
    1.1
    1.2.0
    3.0.9
    3.4.1.Final
    7.6.0.Final
    2.0.6
    3.3.0
    2.30.1
    8.5.54
    2.2.0.v201112011158
    1.1.4
    9.4.31.v20200723
    1.15
    1.2.8
    1.6.2
    3.13.4
    2.4.0
    2.3
    1.5.0
    1.2
    1.3.1
    4.13
    5.6.2
    2.5.1
    1.3.72
    1.3.8
    5.3.4.RELEASE
    3.8.9
    2.13.3
    1.2.3
    1.18.12
    2.6.2
    1.8
    3.3.0
    3.1.0
    3.8.1
    3.1.2
    2.8.2
    3.0.0-M3
    2.22.2
    3.2.0
    2.5.2
    3.2.1
    3.2.0
    3.2.0
    3.1.0
    3.2.4
    3.2.1
    2.22.2
    3.2.3
    1.5.5
    1.9.13
    3.3.3
    4.0.5
    7.4.1.jre8
    8.0.21
    1.9.22
    3.2.16
    4.1.52.Final
    2.0.34.Final
    1.1.0
    7.1.1
    8.19
    19.3.0.0
    3.14.9
    19.3.0.0
    1.1.2
    42.2.16
    0.9.0
    2.3.2
    4.3.1
    Arabba-SR7
    5.9.0
    1.0.3
    Dysprosium-SR12
    3.3.0
    1.0.2
    1.3.8
    1.2.1
    2.2.19
    1.5.2
    3.141.59
    2.40.0
    4.4.8
    4.0.1
    1.7.30
    1.26
    8.5.2
    2.2.11.RELEASE
    4.2.4.RELEASE
    Neumann-SR4
    5.2.9.RELEASE
    1.1.2.RELEASE
    5.3.2.RELEASE
    2.5.6.RELEASE
    2.3.3.RELEASE
    2.0.5.RELEASE
    1.2.5.RELEASE
    5.3.4.RELEASE
    Dragonfruit-SR1
    3.0.10.RELEASE
    3.31.1
    1.6.5
    3.0.11.RELEASE
    2.0.1
    3.0.4.RELEASE
    3.0.4.RELEASE
    2.4.1
    9.0.38
    4.0.14
    2.1.4.Final
    2.7
    3325375
    0.45
    1.6.3
    1.0.2
    2.7.0
  

 以上是底层引用的pom文件,后续开发,我们就不需要关注版本问题,其实在这个pom文件里面,版本问题springboot帮我们做好了

开发导入starter场景启动器

(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)所有场景启动器最底层的依赖


  org.springframework.boot
  spring-boot-starter
  2.3.4.RELEASE
  compile

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

  • 引入依赖默认都可以不写版本
  • 引入非版本仲裁的jar,要写版本号。

可以修改默认版本号

(1)看spring-boot-dependencies里面规定当前依赖的版本 用的 key

(2)在当前项目里面重写配置


        5.1.43
    

1.2、自动配置

  • 自动配好Tomcat
  • 配置Tomcat
  • 
          org.springframework.boot
          spring-boot-starter-tomcat
          2.3.4.RELEASE
          compile
        

(1)自动配好SpringMVC

  • 引入SpringMVC全套组件
  • 自动配好SpringMVC常用组件(功能)

(2)自动配好Web常见功能,如:字符编码问题

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

 (3)默认的包结构

  • 主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来
  • 无需以前的包扫描配置
  • 想要改变扫描路径,@SpringBootApplication(scanBasePackages="org.apache.springboot
    ")   或者@ComponentScan 指定扫描路径
  • @SpringBootApplication
    等同于
    @SpringBootConfiguration
    @EnableAutoConfiguration
    @ComponentScan("org.apache.springboot")

    若想查看容器里面信息,直接在启动类编写该代码,直接启动运行即可:

底层注解--@ConfigurationProperties配置绑定_第3张图片

 打印输出信息:

底层注解--@ConfigurationProperties配置绑定_第4张图片

测试发现:控制层类可以跟启动类同一个目录 

底层注解--@ConfigurationProperties配置绑定_第5张图片

postman测试运行结果如下:

底层注解--@ConfigurationProperties配置绑定_第6张图片

当然,若想要改变扫描路,可以采取@SpringBootApplication(scanBasePackages="org.apache.springboot
")   或者@ComponentScan 指定扫描路径

@SpringBootApplication注解里面看到

底层注解--@ConfigurationProperties配置绑定_第7张图片

 上图,这三个核心注解相当于@SpringBootApplication注解做替换

(4)各种配置拥有默认值

  • 默认配置最终都是映射到某个类上,如:MultipartProperties
  • 配置文件的值最终会绑定每个类上,这个类会在容器中创建对象

 (5)按需加载所有自动配置项

  • 非常多的starter
  • 引入了哪些场景这个场景的自动配置才会开启,比如:
  •  
                org.springframework.boot
                spring-boot-starter-batch
                compile
            

    底层注解--@ConfigurationProperties配置绑定_第8张图片

  • SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面
  • 底层注解--@ConfigurationProperties配置绑定_第9张图片

你可能感兴趣的:(Java框架技术,spring,boot,java,restful)