Spring Boot 入门知识


本篇只是 Spring Boot 入门知识梳理,具体入门应用实践会另起一篇。


Spring Boot 如其名称所示,依然是 Spring 的一类框架。它在保持原有 Spring framework 特征(IoC、AOP等)的基础上,做到了

  • 更容易构建独立的、产品级的Spring应用。
  • 基于现有的 Spring 平台和第三方库,使开发者对于改变的感知最小化。
  • 极大地简化 Spring 配置(几乎很少需要配置文件)
  • 基于 Spring Boot 的 Java 应用可以直接通过打包成jar或通过war部署运行。
  • 同时提供命令行开发工具Spring Boot CLI,使得熟悉命令行的开发者可以更快的完成项目构建。

Spring Boot 目标

Spring Boot 的出现,是为了实现以下目标:

  1. 为 Spring 入门开发者从根本上提供更快、更广泛的开发体验。
  2. 可以直接从默认配置快速开始项目构建,并逐步向需求过度。即做到“开箱即用”。
  3. 不需要代码生成,也不需要XML配置。

Spring Boot 开发环境需求

想要应用Spring Boot,对于环境也是有一定的要求的:

  1. 基础的框架依赖于Java 7、spring-framework-4.3.5或以上版本。
  2. 官方推荐使用Java 8。
  3. 在项目自动化构建工具方面,推荐使用Maven或Gradle。

Servlet 容器

Spring Boot 框架内嵌了三种 Servlet 容器:

  1. Tomcat 支持7、8版本
  2. Jetty 支持8、9.2、9.3版本
  3. Undertow 支持1.3版本

做到框架内嵌Servlet容器,是做到自动化完成Web Application配置的基础。这样就无需再对Servlet容器进行配置以部署Spring Boot。
另外,如果有需要,可将基于Spring Boot的Web应用部署到任何兼容Servlet 3.0以上的容器中。


Spring Boot 引入项目

要想使用Spring Boot,需要引入合适的spring-boot-*.jar,在引入了相应的JAR包后,就可以像使用Java Library一样使用Spring Boot。(这个意思是,如果你愿意,引入合适的包后,甚至可以用记事本开发Spring Boot 项目)

Spring Boot 入门知识_第1张图片
引入Spring Boot项目依赖

在 Gradle 下使用Spring Boot

作为便利的项目自动化构建工具,Gradle 的功能离不开其依赖的插件。而 Spring Boot 也为 Gradle 提供了相应的插件——spring-boot-gradle-plugin。该插件可以帮助开发者做到

  • 将 Spring Boot 应用打包、部署
  • 运行Spring Boot 应用
  • 使用Spring Boot项目依赖管理
Spring Boot 入门知识_第2张图片
引入Gradle Spring Boot 插件

总而言之,在Gradle下使用Spring Boot 就需要在 Gradle 中引入插件,而该插件就能帮助开发者更加便利地管理Spring Boot项目。


Spring Boot 自动配置

Spring Boot 会依据引入的项目依赖,按照通常的习惯(约定)去自动完成相关的配置。
例如,引入了 spring-boot-start-web 依赖,Spring Boot就会按照配置Web Application的默认形式去自动完成曾经需要手动完成的相关配置。
这样做的好处就是开发只需关注项目需要的依赖,而不是花精力在如何配置这些依赖上。而这样一来,项目就可以快速在默认情况下运行起来,之后在根据需求去修改配置就OK。


Main 方法

Spring Boot 保留了和普通 Java 应用一样的 main 方法,作为应用的入口。
但 Spring Boot 的 main 方法会委托给 SpringApplication 类的 run 方法去完成。

Spring Boot 入门知识_第3张图片
Main方法

该方法需要当前类的.class作为参数传入,来告诉 Spring Boot 如何获取主要的组件。args参数可以用来传入命令行输入的指令。
@SpringBootApplication 注解取代了以往的@Configuration、@EnableAutoConfiguration和@ComponentScan。因为该注解的功能等价于这三个注解。所以一般而言,使用这一个注解就足够了。


至此,可以对 Spring Boot 建立初步了解。


参考资料

Spring Boot Reference Guide

你可能感兴趣的:(Spring Boot 入门知识)