一、搭建 Spring Boot 项目
1.创建项目
这边工具采用的是 IntelliJ IDEA ,使用 Spring Initializr 进行项目的创建,Spring Initializr 应该是创建 Spring Boot 项目最方便的一种方式。
单击 File ——> new ——> peoject 。
在弹出窗口选中 Spring Initializr,在 Project SDK 中选择需要的 JDK 版本( IntelliJ IDEA 有默认一个,也可选择本地安装的 JDK),Next。
输入包名,选择语言,构建的项目类型等,Next。
选中 Web ——> Spring Web Starter, Next。
输入项目名称以及项目保存路径,Finish。
点击右下角 import Changes,等待。
到这里,一个完整的 Spring Boot 项目搭建成功。不同版本的 IntelliJ IDEA 在创建过程中有些许差异。但大体一致。
2.运行
找到项目的入口类 DemoApplication.java,运行 DemoApplication.java 的 main 函数。
右击 DemoApplication.java,点击 Run ‘DemoApplication’ 进行运行。
或者在上方选中 DemoApplication,然后点击绿色的运行符号进行运行。
最后控制台日志会打印出启动时间,则表示成功。
二、Spring Boot 文件目录
1.工程目录
/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文件,配置文件等
2.配置文件
Spring Boot 将配置文件进行了统一管理,会自动在 /src/main/resources 目录下寻找 application.properties 或者 application.yml 配置文件。
运行项目时候,Spring Boot 会去加载该配置文件,如果没有配置的参数,则使用默认配置。.properties 和 .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 端口。
3.入口类
入口类的类在默认包下,类名是根据项目名称生成的,项目名称 + Application。入口类的代码很简单,代码如下:
DemoApplication.java:
package com.xiaoyue.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication:是一个组合注解,包含 @EnableAutoConfiguration、@ComponentScan和@SpringBootConfiguration 三个注解,是项目启动注解。如果我们使用这三个注解,项目依旧可以启动起来,只是显然过于繁琐。因此,用 @SpringBootApplication简化。
@SpringApplication.run:应用程序开始运行的方法。
4.测试类
Spring Boot 的测试类是放置在 /src/test/java 目录下面,(包括后期我们自己编写的测试类,也都是放在这里)。项目创建的时候,Spring Boot 会帮我们创建测试类,类名为 项目名称 + Application DemoApplicationTests.java。
package com.xiaoyue.demo;
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 DemoApplicationTests {
@Test
public void contextLoads() {
}
}
@RunWith(SpringRunner.class):@RunWith(Parameterized.class) 参数化运行器,配合 @Parameters 使用 Junit 的参数化功能。查源码可知,SpringRunner 类是继承 SpringJUnit4ClassRunner 类,此处表明使用 SpringJUnit4ClassRunner 执行器。此执行器集成了 Spring 的一些功能。如果只是简单的 Junit 单元测试,该注解可以去掉。
@SpringBootTest:此注解能够测试我们的 SpringApplication,因为 Spring Boot 程序的入口是 SpringApplication, 基本上所有配置都会通过入口类去加载,而该注解可以引用入口类的配置。
@Test:Junit 单元测试的注解,注解在方法上,表示一个测试方法。
5.pom 文件
本质上就是一个 Maven 的配置文件,稍微有点特殊。
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 文件。
三、Maven Helper 插件
Maven Helper 是一个 Intellij IDEA 插件,可以通过视图查看 Maven 依赖树,分析 pom 文件中的依赖是否存在冲突,快速定位错误。
1.安装
在菜单栏选择 File——>Settings——>Plugins,在搜索框中输入 Maven Helper,然后点击 Install 安装即可。安装成功之后记得重启下Intellij IDEA 即可使用。
2.使用
插件安装成功后,pom 文件会多了一个 Dependency Analyzer 视图。
All Dependencies as List:以列表方式显示所有的依赖包。
All Dependencies as Tree:以树形方式显示所有的依赖包。
Conflicts:查看所有有冲突的依赖包,如果存在冲突,会显示红色,同时会显示在右侧视图。
我们可以点击有冲突的包,右击 Exclude 来排除冲突,通过右击 Jump To Source[F12] 可以跳转到原代码。