天天看点

SpringBoot核心简述

同springmvc相比,springboot体现出来的核心理念为"约定优于配置"。而实践这一核心的要素就是各类starter。

  spring-boot  核心工程

  spring-boot-starters  启动服务工程

  spring-boot-autoconfigure  自动配置的核心工程  负责加载注入spring.factories下的配置starters

  spring-boot-actotor  提供应用监控类功能,如endpoints(应用状态监控), healthindicator(应用健康监控)等

  spring-boot-tools 常用工具集,如spring-boot-maven-plugin

  spring-boot-cli 命令行交互工具

  核心工程为: spring-boot, spring-boot-autoconfigure

一是声明依赖jar包,二是在依赖jar包中提供autoconfiguration类,实现自动加载属性。

1,starter

springboot官方推荐使用starter提供一个spring.providers文件,用来声明当前starter所依赖的jar包。

例如,spring-boot-starter-web的spring.providers文件为,

provides: spring-webmvc,spring-web

即,分别提供mvc和web的功能。

2,xxxautoconfiguration的注解解读

a, conditionalonxxx条件注解

    比如conditionalonwebapplication 当前为webapplication才创建bean

           conditionalonmissingbean(b.class) 当前指定的b对象不存在才创建。

b,enableconfigurationproperties(xproperties.class) 使用xproperties获得application.properties的实现

c, import(yconfiguration.class, zconfiguration.class)导入y,z 配置类

d, configuration 基本配置注入属性。

e,在 resources/meta-inf下创建一个名为spring.factories的文件,该文件将告知spring-boot,需要自动配置的属性类

3, springapplication.run所经过的自动配置属性注入

1)refreshcontext:refresh:

2)invokebeanfactorypostprocessors:invokebeanfactorypostprocessors

3)invokebeandefinitionregistrypostprocessors:

4)postprocessbeandefinitionregistry:processconfigbeandefinitions

5)parse:processdeferredimportselectors

6)getimports:process:selectimports:

7)getcandidateconfigurations

8)loadfactorynames

code :

SpringBoot核心简述

configurations:共180個,截取部分

SpringBoot核心简述

墨匠