第一个Spring Boot项目

Posted 阿_毅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个Spring Boot项目相关的知识,希望对你有一定的参考价值。

开心一笑

【今天去医院了,想把心补补。
医生看了一下说,伤的太厉害了,没法补了,还是把它取了吧!
我说行吧。
医生又来一句,说:把肺也取了吧!
我说咋的啦?
医生说现在这个风气吧,没心没肺可能活的时间长一点!
我想了一下,也是,反正要弄就一起弄呗!
心肺拿出来后感觉一下子轻松了好多,因为以后再也不会有心痛的感觉了!
没心没肺真好,坐树杈上想了一宿,后悔没把肠肚也掏了,省得牵肠挂肚。】


新书购买

戳图购买 >>>

1.1 Spring Boot简单介绍

Spring Boot是目前流行的微服务框架,倡导“约定优先于配置”,其设计目的是用来简化新Spring应用的初始化搭建以及开发过程。Spring Boot提供了很多核心的功能,比如自动化配置、提供starter简化Maven配置、内嵌Servlet容器、应用监控等功能,让我们可以快速构建企业及应用程序。本书是一本实战教程,不会浪费太多笔墨来介绍Spring Boot,但会通过具体的项目实例一步步揭开Spring Boot神秘的面纱。

1.2 Spring Boot环境准备

本节将介绍如何安装JDK、安装Intellij IDEA、以及安装Apache Maven。在开始学习Spring Boot之前,我们需要准备好开发环境。本书主要以Window操作系统为例。如果电脑已经安装JDK、Intellij IDEA、或者Apache Maven,可以跳过本节内容。

1.2.1 安装JDK

JDK(Java SE Development Kit)建议使用1.8及以上的版本。其官方下载路径:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。大家可以根据自己Windwo操作系统的配置选择合适的JDK1.8安装包,这里就不过多描述。
软件下载完成之后,双击下载软件,出现安装界面,如图1-1所示。一路点击【下一步】,即可完成安装。这里我把JDK安装在路径:C:\\Program Files\\Java\\jdk1.8.0_77下。

安装完成后,需要配置环境变量JAVA_HOME, 步骤如下:
在电脑桌面上,右击【我的电脑】→【属性】→【高级系统设置】→【环境变量】→【系统变量(S)】→【新建】出现新建环境变量的窗口,如图1-2所示。


图1-2 新建环境变量窗口

在【变量名】和【变量值】中分别填入JAVA_HOME和C:\\Program Files\\Java\\jdk1.8.0_77,点击【确定】。

JAVA_HOME配置好之后,将%JAVA_HOME%\\bin加入到【系统变量】的path中。完成后,打开命令行窗口,输入命令java -version。出现如图1-3所示提示,即表示安装成功。


图1-3 安装成功命令行窗口

JDK安装路径最好不要出现中文,否则会出现意想不到的结果哦。

1.2.2 安装Intellij IDEA

在Intellij IDEA的官方网站 http://www.jetbrains.com/idea/ 可以免费下载IDEA。下载完IDEA后,运行安装程序,按提示安装即可。本书使用的Intellij IDEA 2016.2 版本的,当然大家也可以使用其它版本的IDEA,只要版本不要过低即可。安装成功之后,软件打开界面如图1-4所示.


图1-4 Intellij IDEA软件窗口

1.2.3 安装Apache Maven

Apache Maven是目前流行的项目管理和构建自动化工具。虽然IDEA已经包含了Maven插件,但是我还是希望大家在工作中,能够安装自己的Maven插件,方便以后项目配置需要。大家可以通过Maven的官网http://maven.apache.org/download.cgi下载最新版的Maven。本书的Maven版本为apache-maven-3.5.0。
下载完后解压缩即可,例如,解压到D:盘上,然后将Maven的安装路径D:\\apache-maven-3.5.0\\bin加入到Window的环境变量path中。安装完成后,在命令行窗口执行命令:mvn -v,如果输出如图1-5所示页面,表示Maven安装成功。

图1-5 Maven安装成功命令行窗口

接下来,我们要在Intellij IDEA 下配置Maven,具体步骤如下:

在Maven安装目录,即D:\\apache-maven-3.5.0下新建文件夹repository, 用来作为本地仓库。

在Intellij IDEA界面中,选择【File】→【Settings】,在出现的窗口中找到Maven选项,分别把【Maven home directory】【User settings file】【Local repository】,设置为我们自己Maven的相关目录,如图1-6所示。


图1-6 Maven设置窗口
设置完成后,点击【Apply】→【OK】。到此,Maven在Intellij IDEA的配置完成。

这里需要注意的是,之所以把Maven默认仓库(C:$user.home.m2\\respository)的路径改为我们自己的目录(D:\\apache-maven-3.5.0\\repository),是因为respository仓库到时候会存放很多的jar包,放在C盘影响电脑的性能,所以才会修改默认仓库的位置。

1.3 一分钟快速搭建Spring Boot项目

1.3.1 使用Spring Initializr新建项目

使用Intellij IDEA创建Spring Boot项目有多种,比如:Maven和Spring Initializr。这里我只介绍Spring Initializr这种方式,因为这种方式不但为我们生成完整的目录结构,还为我们生成一个默认的主程序,节省时间。我们的目的是掌握Spring Boot知识,而不是学一堆花样。具体步骤如下:
在Intellij IDEA界面中,点击【File】→【New】→【Product】,在弹出的窗口中选择【Spring Initializr】选项, 在【Product SDK】选择JDK的安装路径,如果没有则新建一个,点击【Next】,具体如图1-7所示。


图1-7 新建Spring Boot项目

填写项目名称【my-spring-boot】,其它默认即可,然后点击【Next】。具体如图1-8所示。


图1-8 设置Spring Boot项目名称

选择【Spring Boot Version】,这里按默认版本(本书使用的Spring Boot 版本为2.0.0.RC1)即可。勾选【web】选项,然后点击【Next】。具体如图1-9所示。


图1-9 选择版本和组件
填写项目名称【my-spring-boot】,其它默认即可。然后点击【Finish】,至此,一个完整的Spring Boot创建完成,如图1-10所示。


图1-10 填写项目名称窗口

在IDEA开发工具上,找到刷新依赖的按钮(Reimport All Maven Projects),下载相关的依赖包,这时开发工具开始下载Spring Boot项目所需依赖包,如图1-11所示。


图1-11 刷新依赖窗口

至此, Spring Boot项目创建完成。

下载Spring Boot依赖包是一个相对漫长的过程,可以去喝杯茶休息一会。

1.3.2 测试

Spring Boot项目创建完成之后,找到入口类MySpringBootApplication中的main方法并运行。当看到如图1-12所示,表示项目启动成功。同时还可以看出项目启动的端口(8080)以及启动时间。


图1-12 Spring Boot项目启动成功

1.4 Spring Boot文件目录介绍

1.4.1 工程目录

Spring Boot的工程目录如图1-13所示。


图1-13 Spring Boot工程目录

/src/main/java: 目录下放置所有的java文件(源代码文件)。
/src/main/resources: 用于存放所有的资源文件,包括:静态资源文件、配置文件、页面文件等。
/src/main/resources/static: 用于存放各类静态资源。
/src/main/resources/application.properties: 配置文件,这个文件非常重要。Spring Boot默认支持两种配置文件类型(.properties和.yml)。
/src/main/resources/templates: 用于存放模板文件,如Thymeleaf(这个技术不懂不用着急,以后会介绍)模板文件。
/src/test/java: 放置单元测试类java代码。
/target:放置编译后的.class文件,配置文件等/
Spring Boot将很多配置文件进行了统一管理,且配置了默认值。Spring Boot会自动在/src/main/resources目录下找application.properties或者application.yml配置文件。找到后将运用此配置文件中的配置,否则使用默认配置。这两种类型的配置文件有其一即可,也可以两者并存。两者区别如下:

application.properties:
server.port = 8080

application.yml:
server:
port:8080

注意:.properties配置文件的优先级高于.yml 。在.properties文件中配置了server.port = 8080,同时在.yml配置了server.port = 8090。Spring Boot将使用.properties中的8080端口。

1.4.2 入口类

入口类的类名是根据项目名称生成的,我们的项目名称是my-spring-boot,故入口类的类名是项目名称 + Application,即MySpringBootApplication.java。入口类的代码很简单,代码如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MySpringBootApplication 

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


@SpringBootApplication:是一个组合注解,包含@EnableAutoConfiguration、@ComponentScan和@SpringBootConfiguration三个注解,是项目启动注解。如果我们使用这三个注解,项目依旧可以启动起来,只是显然过于繁琐。因此,用@SpringBootApplication简化。
@SpringApplication.run:应用程序开始运行的方法。

入口类需要放置在包的最外层,以便能够扫描到所有子包中的类。

1.4.3 测试类

Spring Boot的测试类主要放置在/src/test/java目录下面。项目创建完成,Spring Boot会自动为我们生成测试类MySpringBootApplicationTests.java。其类名也是根据项目名称 + ApplicationTests生成的。测试类的代码如下:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MySpringBootApplicationTests 
		@Test
		public void contextLoads() 
		

@RunWith(SpringRunner.class):@RunWith(Parameterized.class) 参数化运行器,配合@Parameters使用Junit的参数化功能。查源码可知,SpringRunner类是继承SpringJUnit4ClassRunner类,此处表明使用SpringJUnit4ClassRunner执行器。此执行器集成了Spring的一些功能。如果只是简单的Junit单元测试,该注解可以去掉。
@SpringBootTest:此注解能够测试我们的SpringApplication,因为Spring Boot程序的入口是SpringApplication, 基本上所有配置都会通过入口类去加载,而该注解可以引用入口类的配置。
@Test:Junit单元测试的注解,注解在方法上,表示一个测试方法。
当我们右键执行MySpringBootApplicationTests.java中的contextLoads方法的时候,大家可以看到控制台打印的信息和执行入口类中的SpringApplication.run()方法,打印的信息是一致的。由此便知,@SpringBootTest是引入了入口类的配置。

1.4.4 pom文件

Spring Boot项目下的pom.xml文件主要用来存放依赖信息。具体代码如下,部分代码已省略:

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.0.RC1</version>
		<relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
</dependencies>
...... 
<build>
    <plugins>
	<plugin>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-maven-plugin</artifactId>
	</plugin>
    </plugins>
</build>

spring-boot-starter-parent: 是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。
spring-boot-starter-web: 只要将其加入到项目的maven依赖中,我们就得到了一个可执行的Web应用了。该依赖中包含许多常用的依赖包,比如:spring-web、spring-webmvc等等。我们不需要做任何Web配置,便能获得相关Web服务。
spring-boot-starter-test: 这个依赖和测试相关,只要引入它,就会把所有与测试相关的包全部引入。
spring-boot-maven-plugin: 这是一个Maven插件,能够以Maven的方式为应用提供Spring
Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。能够将Spring Boot应用打包为可执行的jar或war文件。

1.5 Maven Helper插件安装和使用

1.5.1 Maven Helper插件介绍

Maven Helper是一款可以方便查看Maven依赖树的插件,可以在Intellij IDEA上安装使用它。它支持多种视图来查看Maven依赖,同时可以帮助我们分析pom文件中的依赖是否存在冲突,方便我们快速定位错误。

1.5.2 Maven Helper插件安装

安装Maven Helper插件很简单,在菜单栏选择【File】→【Settings】→【Plugins】,在搜索框中输入【Maven Helper】,然后点击【Install】安装即可。安装成功之后记得重启下Intellij IDEA即可使用。

1.5.3 Maven Helper插件使用

插件安装成功之后,如图1-14所示,打开pom文件之后,除了Text视图外,多了一个Dependency Analyzer视图。


图1-14 Maven Helper插件

All Dependencies as List:以列表方式显示所有的依赖包。
All Dependencies as Tree:以树形方式显示所有的依赖包。
Conflicts:查看所有有冲突的依赖包,如果存在冲突,会显示红色,同时会显示在右侧视图。我们可以点击有冲突的包,【右键】→【Exclude】来排除冲突,通过【右键】→【Jump To Source[F12]】可以跳转到原代码。


读书感悟

来自《从贝鲁特到耶路撒冷》

  • 如果关于中东的书你只打算读一本,那就一定是这本了。
  • I was only fifteen years old at the time and just waking up to the world…From the first day I walked through the walled Old City of Jerusalem, inhaled its spices, and lost myself in the multicolored river of humanity that flowed through its maze of alleyways, I felt at home… It may have been my first trip abroad, but in 1968 I knew then and there that I was really more Middle East than Minnesota.
    (“我那时才十五岁,刚对着世界醒来……从第一天起,当我步行穿过耶路撒冷围墙环绕的老城,呼吸其间香料的芬芳,在迷宫般的巷陌熙熙攘攘、形形色色的人流间迷失自己,我就有了家一般的感觉……我也许是第一次出国,但在1968年的彼时彼地,我确切地知道比起明尼苏达,中东才更让我着迷。

经典故事

一头老骆驼在垂暮之年,又一次穿越了号称“死亡之海”的大沙漠凯旋。一群驴子请老骆驼去介绍经验。“其实没有什么好说的,”老骆驼说,“认准目标,耐住性子,一步一步往前走,就到达了目的地。”“就这些了吗?还有没有?”驴子反复问。“没有了,就这些。”老骆驼平静地答道。“我还以为能说出些什么惊人的话语来,谁知三言两语就完了。”驴群都摇了摇头,“一点都不精彩,令人失望。”然后散开了。

【生活中,成功之道其实很简单,认准目标,耐住性子,一步一步往前走,就到达了目的地。在追求成功的过程中,没有太多的豪言壮语和掌声鲜花,只要耐得住寂寞,抵得住诱惑,守得住清贫,经得起风雨,把握住方向,成功就不会太遥远。】


大神文章


其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎鼓励,点赞、顶、欢迎留下宝贵的意见、多谢支持!

以上是关于第一个Spring Boot项目的主要内容,如果未能解决你的问题,请参考以下文章

热到让杰克逊在 Spring Boot REST API 中按需使用蛇案例/骆驼案例?

Camel:使用 spring-boot 配置的数据源

spring Boot1.创建第一个springBoot项目

Spring Boot学习——第一个Spring Boot程序

第一个spring-boot项目

Spring Boot第一个程序