zoukankan      html  css  js  c++  java
  • SpringBoot核心简述

     

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

    一,主要Module

      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

     

    二,Starter实现的主要方式

    一是声明依赖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 :

    configurations:共180個,截取部分

     

     

  • 相关阅读:
    结对编程作业
    软件工程网络15个人阅读作业1
    Java课程设计——学生基本信息管理
    JAVA课程设计
    201521123102 《Java程序设计》第12周学习总结
    201521123102 《Java程序设计》第11周学习总结
    201521123102 《Java程序设计》第9周学习总结
    个人作业5——软工个人总结
    alpha阶段个人总结
    案例分析
  • 原文地址:https://www.cnblogs.com/Jashinck/p/15115488.html
Copyright © 2011-2022 走看看