# 实验1-spring-boot
**Repository Path**: wx_68c291ad5f/springboot
## Basic Information
- **Project Name**: 实验1-spring-boot
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-04-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 实验一 使用Spring Boot构建应用程序
| 实验名称 |
使用Spring Boot构建应用程序 |
实验序号 |
一 |
| 姓名 |
黄一鸣 |
学号 |
201741404140 |
班级 |
17软件工程1班 |
| 实验地点 |
网络直播 |
实验日期 |
2020年3月24日 |
指导老师 |
黎志雄 |
| 教师评语 |
|
实验成绩 |
评阅教师 |
| 百分制 |
|
| 同组同学 |
无 |
#### 1.实验目的
1.掌握使用IntelliJ IDEA创建Spring Boot应用程序的方法;
2.了解spring-boot-starter-parent的配置内容;
3.掌握如何利用Starter扩展Spring Boot应用程序的功能;
4.掌握如何配置Starter;
5.掌握如何通过属性文件定制Spring Boot应用程序的初始化参数;
6.掌握使用Spring Boot编写简单的单元测试;
7.了解Spring Boot应用程序的Fat Jar文件;
8.掌握Markdown轻量级标记语言编写README.md文件。
#### 2.实验环境
1.JDK 1.8或更高版本
2.Maven 3.6+
3.IntelliJ IDEA
#### 3.实验任务
1.通过Intellij IDEA的spring Initializr向导建创建Spring Boot项目。
File->new->project->Spring Initializr

说明:点击next后填写项目名等信息,再下一步可以选择添加需要的依赖包,然后finish就好了。
2.添加两个功能模块:spring MVC、lombok
上maven repository查想要找的依赖然后将最新版本导入项目的pom文件即可

3.添加阿里云镜像仓库作为项目maven仓库
在settings.xml中添加如下代码:

4.解释项目pom.xml文件中主要标签的意义

properties标签:在标签内可以把版本号作为变量声明,当后面需要用到版本号时可以用${变量名}的形式代替
dependencies标签:通过该元素管理项目对第三方包的一些依赖
plugins标签:用于指定所使用的插件
5.配置jetty或undertow作为spring Boot应用程序的默认Servlet容器

说明:使用jetty,需要在spring-boot-starter-web排除spring-boot-starter-tomcat,因为SpringBoot默认使用tomcat
6.添加一个简单的Spring MVC控制器组件,用于测试

运行结果:

说明:
Spring中@RestController的作用相当于@Controller+@ResponseBody
@Controller注解:表名这个类是一个控制类
@RequestMapping注解:该注解是用来映射请求的,即指明处理器可以处理那些URL请求,该注解既可以用在类上,也可以用在方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestMapping有6个属性:
value指定请求的实际地址;
method指定请求的method类型(get、post等);
consumes指定处理请求的提交内容类型;
produces指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params指定request中必须包含某些参数值时才让该方法处理;
headers指定request中必须包含某些指定的header值时才让该方法处理请求。
7.定义一个CommandLineRunner的Bean,用于检查Spring Boot应用程序启动完成后在Spring IoC容器中注册的所有bean

运行结果:

说明:
@bean注解:该注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。
CommandLineRunner:实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求,为了满足这一需求,Spring Boot提供了该接口类。Spring Boot应用程序启动后,会遍历CommandLienRunner接口的实例并运行他们的run方法。我们还可以利用@Order注解来规定所有CommandLineRunner实例的运行顺序。
8.编写一个简单的单元测试

说明:
MockMvc实现了对http请求的模拟,能够直接使用网络形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境,而且提供了一套验证工具。
方法解析:
perform:执行一个requestBuilder请求,会自动执行SpringMVC的流程并映射到相应的控制器执行处理。
get:声明发送一个get请求方法。
accept:规定数据格式。
andExpect:添加ResultMatcher验证规则,验证控制器执行完成后结果是否正确(对返回的数据进行的判断)。
9.使用Intellij IDEA的HTTP Client工具测试控制器端口。

运行结果:

10.在命令行中使用Spring-boot插件运行Spring Boot应用程序,并把嵌入式Servlet容器的默认端口8080改为9090
在main目录下的resources文件中的application.properties文件中添加如下代码:server.port=9090
然后在命令行窗口输入:mvn spring-boot:run
运行结果:

11.在属性文件中配置Spring Boot应用程序以debug模式运行
在属性文件中添加debug:true即可
运行结果:

12.在命令行中编译、打包Spring Boot应用程序
在命令行中输入mvn clean package即可
运行结果:

13.在命令行中使用java命令运行Spring Boot应用程序的jar文件
在命令行窗口运行java -jar demo-0.0.1-SNAPSHOT.jar即可
运行结果:

14.在命令行中使用java命令运行Spring Boot应用程序的jar文件,带参数改变嵌入式Servlet容器的默认端口8080改为9090
在命令行窗口运行java -jar demo-0.0.1-SNAPSHOT.jar --server.port=9090即可
运行结果:

