概览
开始使用Spring Boot,学习更多的SpringBoot核心功能,最后投入到生产环境。
入门
SpringBoot简化了Spring项目的开发、配置、使用成本,可以构建适用于生产环境的单体应用。
依赖JDK 8+,Spring Framework 5.2.9,Maven 3.3+,Gradle 6。
支持 Tomcat 9.0/Servlet3.0、Jetty9.4/Servlet3.1、UnderTow2.0/Servlet4.0。
开发第一个SpringBoot应用。
使用
Spring Boot已经集成了其相关依赖的版本,所以理论上不需要使用方自己指定。SpringBoot Starter集成了启动一个项目所需的所有依赖,简化了项目的配置和依赖管理。SpringBoot不指定特有的包结构,根据最佳实践有合理包结构。SpringBoot配置支持Java方式的@Configuration和XML方式的@ImportResource。SpringBoot会尝试对依赖执行自动配置,需要通过将@EnableAutoConfiguration或@SpringBootApplication注解添加到您的@Configuration类来使用自动配置。使用exclude={SomeClass.class}来禁止对类执行自动配置。SpringBoot同样支持使用@ComponentScan来扫描Bean,使用@AutoWired自动注入Bean。@SpringBootApplication注解结合了自动配置@EnableAutoConfiguration、组件扫描@ComponentScan和Bean注册@Configuration。可以使用IDE集成、java命令、mvn命令来运行一个SpringBoot应用。SpringBoot开发工具包可以优化开发流程比如自动部署,
Features
SpringBoot启动入口是SpringApplication类,可以通过注册FailureAnalyzers来处理启动失败事件。启用懒加载来延后Bean的初始化可以提高应用的启动速度。应用启动时打印的Banner也可以定制。SpringBoot应用的配置也可以修改,比如启动时不打印Banner。使用SpringApplicationBuilder流式编程来配置并启动SpringBoot Application。通过ApplicationAvailability类可以获取应用运行的状态。可以订阅应用的事件比如启动、就绪等。在SpringBoot内部会根据不同的应用环境注册不同的ApplicationContext类型。通过注入ApplicationArguments可以获取应用的启动参数。可以通过实现ApplicationRunner或CommandLineRunner在SpringApplication.run(…)之前执行一些操作。通过实现ExitCodeGenerator可以在应用退出时返回指定的状态码。启动管理员功能可以远程管理应用。
SpringBoot同样properties文件、YAML、环境变量、参数等支持外部化配置,不同维度的配置会有覆盖策略。可以在配置中使用随机值。可以将配置注入到结构化的对象中。
Profiles可以根据环境生效不同的配置。
SpringBoot日志,格式,配色,日志文件,日志级别,日志分组,不同的日志框架及对应配置文件。
SpringBoot中的i18n。
SpringBoot集成Gson、Jackson、JSON-B三种JSON包。
使用SpringBoot开发Web应用程序。Spring Web MVC Framework和Spring WebFlux Framework。嵌入式Servlet容器。优雅停机