Spring Boot(5)---第一个Spring Boot应用程序
Spring Boot入门:开发您的第一个Spring Boot应用程序
本节介绍如何开发一个简单的“Hello World!”Web应用程序,该应用程序重点介绍Spring Boot的一些主要功能。我们使用Maven来构建这个项目,因为大多数IDE都支持它。如果具体用Eclipse,可以查看: Spring boot入门:在Eclipse中搭建Spring boot 项目
![]() |
该spring.io网站包含了许多“入门” 指南使用Spring的引导。如果您需要解决特定问题,请先在那里查看。
您可以通过转到start.spring.io并从依赖关系搜索器中选择“Web”起始器来缩短以下步骤。这样做会产生一个新的项目结构,以便您可以立即开始编码。查看Spring Initializr文档以获取更多详细信息。 |
在开始之前,请打开终端并运行以下命令以确保您已安装了Java和Maven的有效版本:
$ java -version java version "1.8.0_102" Java(TM) SE Runtime Environment (build 1.8.0_102-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
$ mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00) Maven home: /usr/local/Cellar/maven/3.3.9/libexec Java version: 1.8.0_102, vendor: Oracle Corporation
此示例需要在其自己的文件夹中创建。后续假定您已经创建了合适的文件夹,并且它是您当前的目录。
11.1创建POM
我们需要先创建一个Maven pom.xml
文件。本pom.xml
是用来构建项目的配置文件。打开您最喜欢的文本编辑器并添加以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
前面的列表应该给你一个工作版本。您可以通过运行来测试它mvn package
(现在,您可以忽略“jar将为空 - 没有内容被标记为包含!”警告)。
![]() |
此时,您可以将项目导入IDE(大多数现代Java IDE包含对Maven的内置支持)。为了简单起见,我们在本例中继续使用纯文本编辑器。 |
11.2添加类路径依赖关系
Spring Boot提供了许多“启动器(Starters)”,可让您将jar添加到类路径中。启动器(Starters)这spring-boot-starter-parent
是一个提供有用的Maven默认值的特殊启动器。它还提供了一个 dependency-management
部分,以便您可以省略子模块依赖关系的版本标签。
其他“Starter”提供了在开发特定类型的应用程序时可能需要的依赖关系。由于我们正在开发一个Web应用程序,我们添加一个 spring-boot-starter-web
依赖项。在此之前,我们可以通过运行以下命令来查看我们目前的功能:
$ mvn dependency:tree [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT
该mvn dependency:tree
命令打印您的项目依赖关系的树形表示。你可以看到它spring-boot-starter-parent
本身不提供依赖关系。要添加必要的依赖关系,请编辑pom.xml
并spring-boot-starter-web
在该parent
部分正下方添加 依赖项:
<dependency> <dependency> <groupId> org.springframework.boot </ groupId> <artifactId> spring-boot-starter-web </ artifactId> </ dependency> </ dependencies>
如果你mvn dependency:tree
再次运行,你会发现现在有很多附加的依赖关系,包括Tomcat Web服务器和Spring Boot本身。
11.3编写代码
为了完成我们的应用程序,我们需要创建一个Java文件。默认情况下,Maven编译源代码src/main/java
,因此您需要创建该文件夹结构,然后添加一个名为src/main/java/Example.java
包含以下代码的文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
尽管这里没有太多的代码,但还是有很多重要的部分。如:
11.3.1 @RestController和@RequestMapping注解
我们Example类
的第一个注释是@RestController
。这被称为 stereotype annotation。它为阅读代码的人提供了线索,对于Spring来说,这个类扮演着特定的角色。在这种情况下,我们的类是一个Web @Controller
,所以Spring在处理传入的Web请求时会考虑这个类。
该@RequestMapping
注释提供“路由”的信息。它告诉Spring,任何带有/
路径的HTTP请求都应映射到该home
方法。该 @RestController
注释告诉Spring将结果字符串直接呈现给调用者。
![]() |
在@RestController 与@RequestMapping 注解是Spring MVC的注解。(它们并不特定于Spring Boot。)有关更多详细信息,请参阅Spring参考手册中的MVC部分。
|
11.3.2 @EnableAutoConfiguration注解
第二个级别注释是@EnableAutoConfiguration
。这个注解告诉Spring Boot根据你添加的jar依赖来“猜测”你想要如何配置Spring。自从spring-boot-starter-web
添加了Tomcat和Spring MVC之后,自动配置假定您正在开发一个Web应用程序并据此设置Spring。
启动器和自动配置
自动配置旨在与“Starter”配合使用,但这两个概念并不直接相关。您可以自由选择启动器之外的jar依赖项。Spring Boot仍然尽力自动配置您的应用程序。
11.3.3“main”方法
我们应用程序的最后一部分是该main
方法。这只是一个遵循Java约定的应用程序入口点的标准方法。我们的主要方法SpringApplication
通过调用委托给Spring Boot的类run
。 SpringApplication
引导我们的应用程序,从Spring开始,然后启动自动配置的Tomcat Web服务器。我们需要Example.class
将该run
方法的参数作为参数传递,以确定SpringApplication
哪些是主要的Spring组件。还传递了args数组以传递命令行参数。
11.4运行示例
在这一点上,你的应用程序应该工作。由于您使用了 spring-boot-starter-parent
POM,run
因此您可以使用一个有用的目标来启动应用程序。mvn spring-boot:run
从根项目目录中键入以启动应用程序。您应该看到类似于以下内容的输出:
e following:
$ mvn spring-boot:run. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.0.0.RELEASE) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.222 seconds (JVM running for 6.514)
如果您打开一个Web浏览器localhost:8080
,您应该看到以下输出:
Hello World!
要正常退出应用程序,请按ctrl-c
。
11.5 创建可执行的jar
让我们完成我们的例子,创建一个完全自包含的可执行jar文件,我们可以在生产环境中运行。 可执行的jar(有时称为“fat jars”)是包含编译的类以及代码运行所需要的所有jar包依赖的归档(archives)。
可执行jar和Java
Java不提供任何标准的方法来加载嵌套的jar文件(即本身包含在jar中的jar文件)。 如果您正在寻找可以发布自包含的应用程序,这可能是有问题的。
为了解决这个问题,许多开发人员使用“uber” jars。 一个uber jar简单地将所有类、jar包进行档案。 这种方法的问题是,很难看到您在应用程序中实际使用哪些库。 如果在多个jar中使用相同的文件名(但具有不同的内容),也可能会出现问题。
Spring Boot采用一个不同的方法这样可以直接对jar进行嵌套。
要创建可执行的jar,我们需要将spring-boot-maven-plugin添加到我们的pom.xml中。 在 dependencies标签 下方插入以下行:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins> </build>
spring-boot-starter-parent POM 包括重新打包目标的 executions标签 配置。 如果您不使用该父POM,您将需要自己声明此配置。 有关详细信息,请参阅插件文档。
保存您的pom.xml并从命令行运行 mvn package:
$ mvn package[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] .... .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.0.0.RELEASE:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
如果你看看target目录,你应该看到myproject-0.0.1-SNAPSHOT.jar。 该文件的大小约为10 MB。 如果你想查看里面,可以使用jar tvf:
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
您还应该在target目录中看到一个名为myproject-0.0.1-SNAPSHOT.jar.original的较小文件。 这是Maven在Spring Boot重新打包之前创建的原始jar文件。
使用java -jar命令运行该应用程序:
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar. ____ _ __ _ _/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v2.0.0.RELEASE) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.536 seconds (JVM running for 2.864)
像之前一样,ctrl+c正常退出应用程序。
12. 接下来应该读什么
希望本节能为您提供一些Spring Boot基础知识,并让您准备编写自己的应用程序。 如果你是一个面向具体任务的开发人员,你可能想跳过 https://spring.io/ ,看看一些解决具体的“如何用Spring”问题的入门指南; 我们还有Spring Boot-specific How-to参考文档。
Spring Boot库还有一大堆可以运行的示例。 示例与代码的其余部分是独立的(这样您不需要构建多余的代码来运行或使用示例)。
下一个是第三部分“使用 Spring Boot”。 如果你真的没有这个耐心,也可以跳过去阅读Spring Boot功能。
Spring Boot(5)---第一个Spring Boot应用程序相关推荐
- Spring Boot:构建一个RESTful Web应用程序
介绍: REST代表表示状态传输 ,是API设计的体系结构指南. 我们假设您已经具有构建RESTful API的背景. 在本教程中,我们将设计一个简单的Spring Boot RESTful Web应 ...
- spring的下载及在idea搭建spring框架和第一个spring项目
spring的下载 spring各版本jar包下载链接: commons logging jar下载链接: 你要是使用IDEA的话可以在这里加载spring框架 spring各版本jar包下载链接: ...
- Spring Boot (一)Spring Boot 概述
Spring Boot(一) 一 . Spring Boot 是什么? 首先Spring Boot不是一个框架,它是一种用来轻松创建具有最小或零配置的独立应用程序的方式.这是方法用来开发基于Sprin ...
- 用 Docker 构建、运行、发布来一个 Spring Boot 应用
原文同步至 http://waylau.com/docker-spring-boot/ 本文演示了如何用 Docker 构建.运行.发布来一个 Spring Boot 应用. Docker 简介 Do ...
- eclipse创建springboot项目_创建一个 Spring Boot 项目,你会几种方法?
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 42W+,如下图: 2017 年由于种种原因,就没有 ...
- 使用 Spring Boot CLI 运行第一个Spring boot程序
简介 Spring Boot CLI是Spring Boot的命令行界面.它可以用来快速启动Spring. 它可以运行Groovy脚本. Spring Boot CLI是创建基于Spring的应用 ...
- Spring Boot 面试,一个问题就干趴下了!
最近栈长面试了不少人,其中不乏说对 Spring Boot 非常熟悉的,然后当我问到一些 Spring Boot 核心功能和原理的时候,没人能说得上来,或者说不到点上,可以说一个问题就问趴下了! 这是 ...
- Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目02
概述 将工程托管到Github Gradle构建 为什么一个main函数就能启动web并提供这么多功能 幕后的 Spring Boot 分发器和 multipart 配置 视图解析器.静态资源以及区域 ...
- Spring Boot-Spring Tool Suit + Gradle 构建第一个Spring Boot 项目01
文章目录 概述 使用Spring Tool Suite构建Spring Boot项目 下载STS 插件安装 搭建第一个Spring Boot项目 启动项目 概述 通常,构建一个Spring Boot项 ...
最新文章
- SCAU 07校赛 10317 Fans of Footbal Teams
- python sub 不区分大小写_解决Python列表字符不区分大小写的问题
- js 为什么0.1+0.2不等于0.3
- 深信服上网管理设备基本操作
- 小容量单片机生成pdf文件
- 英语自动提取高频词_斑马英语提分营免费体验课
- php-fpm初始化失败,FPM的初始化 - [ PHP7的内核剖析 ] - 在线原生手册 - php中文网
- alert 返回页面 刷新_页面生命周期:DOMContentLoaded,load,beforeunload,unload
- 从头开始-02.C语言基础
- Matlab实用代码——定位文件位置,自动导入文件
- 采用dlopen、dlsym、dlclose加载动态链接库
- MapReduce计算模型(二)
- kettle将文件路径定义为_Kettle变量和自己定义java代码的实例应用
- GAN详解与PyTorch MINIST手写数字生成实战
- Linux常用快捷键及命令
- crackme.chm之Chafe1
- 怎样恢复计算机的开机桌面,电脑系统崩溃如何找回桌面文件?
- js函数arguments的使用
- 归一化方法总结 | 又名“BN和它的后浪们“
- JS IE11 Script5 拒绝访问 跨域