Spring全家桶学习笔记 03 | 编写第一个Spring程序

理解了IoC与DI,我们就可以着手编写第一个Spring程序了。

本章目录

  • 如何通过spring.io创建基础骨架

  • 骨架的基本结构

  • 运行项目

  • 简单的分析pom.xml

  • 一些疑问解答

生成骨架

  • 首先访问 https://start.spring.io/ ,这是spring官方的骨架生成器网站Spring Initializr
生成Spring骨架
  • 选择Maven工程
  • Spring Boot使用默认的2.1.6版本
  • Artifact属性就是生成的项目名称
  • Dependencies方面选择Web支持与Actuator。

打开项目

  • IDE选择IntelliJ IDEA,打开项目后的目录结构如下
项目目录结构
  • 其中HelloSpringApplication类是带有SpringBootApplication注解的入口程序
入口程序
  • application.properties则是spring自动生成的一个空的配置文件。

  • 接着我们编辑HelloSpringApplication

    HelloSpringApplication

    添加@RestController注解,同时新增一个简单的hello接口。编辑之后即可运行程序

运行项目

项目成功运行之后,我们可以再IDEA的run窗口看到Spring Boot内置的Tomcat已经跑在了本机的8080端口上

8080端口
  • 打开IDEA的Terminal窗口,或是自行打开cmd切换至本项目的路径

    hello接口
  • 回车之后就能看到接口返回的字符串了

    返回的字符串

好了,至此我们的项目已经是一个完整的服务器应用了,那么我们在创建过程中总共做了哪些工作呢?

  • 利用骨架生成器生成Spring Boot骨架项目

  • 用IDEA打开项目,自动下载依赖包等

  • 添加@RestController控制器注解,写了一个极为简单的接口。

一个Spring Boot项目从无到有只需这3步,这就是Spring Boot的魅力所在了。

那先前与web模块一同添加进项目的Actuator用意何在呢?

Spring Boot Actuator是spring boot项目一个监控模块,它可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。

  • 下面演示一个简单使用,在Terminal或CMD中输入以下命令:
curl http://localhost:8080/actuator/health

这个内置接口能够告诉我们此时运行的应用程序的状态如何,如果一切正常,则会返回以下结果

health检查

体验了接口之后,你可能会想,Web模块与Actuator模块是我们在利用骨架生成工具时勾选添加的,那么实际上项目是如何添加这几个模块的依赖呢?接下来让我们来揭开项目根目录下pom.xml的面纱。

分析项目

pom.xml是Maven工程的特点,如果你更熟悉Gradle的话,我猜测你在Android领域应该有所建树了,自然也能够快速上手Maven。打开pom.xml文件,就能看到Spring Boot自动生成的内容

pom.xml

其中Spring Boot指定了spring-boot-starter-parent作为我们整个Maven工程的parent,而2.1.6的版本是先前我们在网站上指定的

parent

项目所使用的Java版本由我们指定为了1.8

java版本

以下就是项目的依赖,原来web模块与actuator模块是在此处被引入项目的

dependency

或许你看到这里会很奇怪,为什么这些依赖没有指定版本号呢?那是因为在Spring Boot中我们只需要告诉maven我们需要什么依赖,而其对应的版本号则是由parent管理的。

接下来我们能够看到文件的最后引入了一个plugin,这个plugin的功能就是在我们打包项目的过程中生成一个可执行的jar包,下面来演示一下这个功能

  • 在Terminal中输入以下命令
mvn clean package -Dmaven.test.skip

等待数秒之后,可以看到以下输出信息

打包成功

我们暂时不去深究命令,只需知道它能够打出我们想要的jar包就足够了。此时我们将目光移向项目目录,能够发现src文件夹下新增了一个target文件夹,将其展开就能够看到我们所需的jar包了

target
  • 在Terminal窗口中输入以下命令,进入target路径,运行jar包
运行jar包

数秒之后就能看到我们的应用已经成功跑起来了,这种以java -jar 的方式与直接点击run按钮并无区别。

运行成功

一些疑问

  • 为什么打出的包是jar包而不是war包?

    Spring Boot默认打出的是可执行的Jar包,这个Jar包与普通的jar包结构不同,其中包含所依赖的各种Jar,同时也会有Web容器,因此无需容器就能够直接运行。

  • 为什么不是curl http://localhost:8080/hello-spring/hello ?
    因为这个项目就是发布在ROOT,即直接发布在/的。

到此我们已经写完了第一个Spring应用程序,也成功将它跑了起来,简单两笔就勾绘出了Spring最基础的样子,这就是Spring Boot想要带给我们的。

你可能感兴趣的:(Spring全家桶学习笔记 03 | 编写第一个Spring程序)