惊恐!!为什么说 Java 程序员必须掌握 Spring Boot ?

这个问题放在五年以前,还可以存在,但放到 2021 年,这个问题已经没有存在的价值了,因为所有的 Java 程序员都必须得掌握 Spring Boot 已经变成了一条定律,就像勾股定律一样。

首先,我们要知道“什么是 Spring Boot”。

Spring Boot 是由 Pivotal 团队提供的一个全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
说句人话就是,Spring Boot 不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。

其次,我们要知道“使用 Spring Boot有什么好处”。

其实就是简单、快速、方便!在没有 Spring Boot 之前,我们要搭建一个 Web 项目,通常要这么做:

  • 配置 web.xml,加载 Spring 和 SpringMVC

  • 配置数据库链接、配置 Spring 事务

  • 配置日志文件

  • 部署 Tomcat 运行 Web 项目

有了 Spring Boot 之后呢,再也不用折腾这些了,仅仅只需要非常少的几个配置就可以快速地搭建一套 Web 项目!使用 Spring Boot 有多爽,用下面这幅图来表述下。



那接下来,我们就直接上手一个例子来体验一下。

01、使用 Spring Initlallzr 创建 Spring Boot 项目

创建一个 Spring Boot 项目非常简单,通过 Spring Initlallzr 就可以了。

  • 第一个选项一般选择 Maven(Java 后端项目首选),Gradle 在安卓项目中用的比较多。

  • 第二个选项一般选择 Java。

  • 第三个选项默认为 2.4.3,Spring Boot 目前最稳定的版本。

  • 第四个选项填上项目的路径和名称。

  • 第五个选项,我们选择 Spring Web 和 Spring Boot Actuator,表明该项目是一个 Web 项目;Actuator 是 Spring Boot 提供的对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的 Spring beans 以及一些环境属性等。

选项选择完后,就可以点击【Generate】按钮生成一个初始化的 Spring Boot 项目了。生成的是一个压缩包,导入到 IDE 的时候需要先解压。

02、把 Spring Boot 项目导入 IDEA


PS:导入的过程就省略了,请选择 Maven 就对了。

等待 Maven 把所有的依赖包下载完。



项目的目录结构图如下所示。


  • HelloSpringBootApplication 为项目的入口,带有 main() 方法。我们知道,传统的 Web 项目通常需要放到 Tomcat 等容器下面启动运行,而 main() 方法则预示着该项目可以作为一个 jar 包直接运行——因为 Spring Boot 已经内置了 Tomcat。

  • 大家一定对 @SpringBootApplication 注解非常好奇,它的源码大致如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)

从这些注解中,我们大致可以窥探出,Spring Boot 项目使用了大量的注解取代了以往繁琐的 xml 配置。

03、编辑 Spring Boot 项目来看下面这段代码。

@SpringBootApplication
@RestController
public class HelloSpringBootApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloSpringBootApplication.class, args);
    }

    @RequestMapping("hello")
    public String hello() {
     return "Hello World";
 }
}
  • @RestController 注解相当于 @ResponseBody + @Controller,意味着请求返回的对象可以直接以 JSON 的格式回显。

  • hello() 方法非常简单,返回一个字符串“Hello World”。@RequestMapping 表明这个方法是一个请求映射。

04、运行 Spring Boot 项目

接下来,我们直接运行 HelloSpringBootApplication 类,这样一个 Spring Boot 项目就启动成功了。


默认端口为 8080。

这时候,可以直接在 IDEA 的 Terminal 面板中测试该项目是否启动成功。


命令行为 curl http://localhost:8080/hello
之所以不需要项目路径 helloSpringBoot,是因为默认启动的时候相当于是一个 ROOT 级别的,所以不需要根目录。

curl 是一个常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)和 URL 的合体。curl 的功能非常强大,命令行参数多达几十种。如果运用熟练的话,完全可以取代 Postman。

05、jar 形式运行 Spring Boot 项目

打开 pom.xml,我们可以看到如下内容:

<build>
 <plugins>
  <plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
  </plugin>
 </plugins>
</build>

这意味着我们可以通过 maven 命令 mvn clean package 将 Spring Boot 项目打包成 jar 文件。


也可以加上参数用于跳过打包时候的测试:mvn clean package -Dmaven.test.skip

稍等片刻,就可以在 target 目录下看到对应的 jar 包。该 jar 包比起传统的 war 包更具有优势,因为不需要再单独开一个容器来跑项目了,Spring Boot 内置过了。原生的 jar 文件(.jar.original)只有不到 3 kb,非常小,因为没几行代码,但打包后 .jar 文件有 19 M,这说明 Spring Boot 帮我们做了很多肉眼看不到的工作。


直接使用 java -jar helloSpringBoot-0.0.1-SNAPSHOT.jar 命令运行该 jar 包,同样可以看到
启动信息。



这次,我们使用浏览器来访问一下。



也是 OK 的,这说明我们的第一个 Spring Boot 程序跑起来了。

怎么样?使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。

如果你是一名 Java 程序员,还没有学习 Spring Boot,那赶紧点吧!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容