SprinBoot易學難精

Spring Boot易學難精

易學

  • 組件自動裝配:規約大於配置,專一核心業務
  • 外部化配置:一次構建、按需調配,處處運行
  • 嵌入式容器:內紙容器、無序部署、獨立運行
  • Spring Boot Stater:簡化依賴、按需裝配、自我包含
  • Production-Ready:一站式運維、生態無縫整合

難精

  • 組件自動裝配:模式註解、@Enable模塊、條件裝配、加載機制
  • 外部化配置:Environment抽象、生命週期、破壞性變動
  • 嵌入式容器:Servlet Web容器、Reactive Web容器
  • Spring Boot Stater:依賴管理、裝配條件、裝配順序
  • Production-Ready:健康檢查、數據指標、@Endpoint管控

Spring Boot三大特性

  • 組件自動裝配:Web MVC、 Web Flux和JDBC
  • 嵌入式Web容器:Tomcat、Jetty和因此及(Undertow)
  • 生產準備特性:指標、健康檢查、外部化配置等

核心特性

組件自動裝配

  激活:@EnableAutoConfigurationweb

  配置:/META--INF/spring.factoriesspring

  實現:xxxAutoConfiguartion運維

 在Spring Boot項目中都有以下的啓動類:spring-boot

  

  最重要的就是@SpringBootApplicationSpringApplication.run()其中spa

  @SpringBootApplication註解部分:3d

  

   當spring boot掃描到@EnableAutoConfiguration註解時
  則會將spring-boot-autoconfigure.jar/META-INF/spring.factories文件中org.springframework.boot.autoconfigure.EnableAutoConfiguration對應的value裏的全部xxxConfiguration類加載到IOC容器中。
  而xxxAutoConfiguration類通常都會有@ConditionalOnxxx註解,經過這些條件註解來判斷是否真正的建立xxxConfiguration對象。
  spring boot的各類spring-boot-starter-xxx.jar也正是居於此註解來達到自動裝配的目的。對象


  @EnableAutoConfiguration註解部分:blog

  

  其中最關鍵的要屬@Import(AutoConfigurationImportSelector.class),藉助AutoConfigurationImportSelector,@EnableAutoConfiguration能夠幫助SpringBoot應用將全部符合條件的@Configuration配置都加載到當前SpringBoot建立並使用的IoC容器。
生命週期

嵌入式Web容器

  web Servlet:Tomcat、Jetty和Undertow部署

  web Reactive:Netty Web Server

生產準備特性

  指標:/actuator/metrics

  健康檢查:/actuator/health

  外部化配置:/actuator/configprops

相關文章
相關標籤/搜索