zoukankan      html  css  js  c++  java
  • 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)
    • 生产准备特性:指标、健康检查、外部化配置等

    核心特性

    组件自动装配

      激活:@EnableAutoConfiguration

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

      实现:xxxAutoConfiguartion

     在Spring Boot项目中都有如下的启动类:

      

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

      @SpringBootApplication注解部分:

      

       当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注解部分:

      

      其中最关键的要属@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

  • 相关阅读:
    15.[JavaScript]第8章对象和数组[上,下, 中]
    centos 7 firewall(防火墙)开放端口/删除端口/查看端口
    Docker使用docker-compose.yml构建Asp.Net Core和Mysql镜像并与Mysql数据库通信
    Docker使用Dockerfile构建Asp.Net Core镜像
    Docker使用Mysql镜像命令
    指定的 CGI 应用程序遇到错误,服务器终止了该进程。
    常见SMTP发送失败原因列表
    MVC View中获取action、controller、area名称、参数
    status 返回当前请求的http状态码
    asp:GridView控件使用FindControl方法获取控件的问题
  • 原文地址:https://www.cnblogs.com/echola/p/11058970.html
Copyright © 2011-2022 走看看