# 实验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
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/153302_2e690303_5723576.png "1.png")
说明:点击next后填写项目名等信息,再下一步可以选择添加需要的依赖包,然后finish就好了。
2.添加两个功能模块:spring MVC、lombok
上maven repository查想要找的依赖然后将最新版本导入项目的pom文件即可
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/153650_e5429b21_5723576.png "2.png")
3.添加阿里云镜像仓库作为项目maven仓库
在settings.xml中添加如下代码:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/154158_ebe3590a_5723576.png "3.png")
4.解释项目pom.xml文件中主要标签的意义
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/154216_c3edaa57_5723576.png "4.png")
properties标签:在标签内可以把版本号作为变量声明,当后面需要用到版本号时可以用${变量名}的形式代替
dependencies标签:通过该元素管理项目对第三方包的一些依赖
plugins标签:用于指定所使用的插件
5.配置jetty或undertow作为spring Boot应用程序的默认Servlet容器
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/154300_bb5f5ab5_5723576.png "5.png")
说明:使用jetty,需要在spring-boot-starter-web排除spring-boot-starter-tomcat,因为SpringBoot默认使用tomcat
6.添加一个简单的Spring MVC控制器组件,用于测试
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/154440_539e5aaa_5723576.png "6-1.png")
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/154456_d306548d_5723576.png "6-2.png")
说明:
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
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155011_c854aeed_5723576.png "7-1.png")
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155036_3e6d6126_5723576.png "7-2.png")
说明:
@bean注解:该注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。
CommandLineRunner:实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求,为了满足这一需求,Spring Boot提供了该接口类。Spring Boot应用程序启动后,会遍历CommandLienRunner接口的实例并运行他们的run方法。我们还可以利用@Order注解来规定所有CommandLineRunner实例的运行顺序。
8.编写一个简单的单元测试
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155151_af431444_5723576.png "8.png")
说明:
MockMvc实现了对http请求的模拟,能够直接使用网络形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境,而且提供了一套验证工具。
方法解析:
perform:执行一个requestBuilder请求,会自动执行SpringMVC的流程并映射到相应的控制器执行处理。
get:声明发送一个get请求方法。
accept:规定数据格式。
andExpect:添加ResultMatcher验证规则,验证控制器执行完成后结果是否正确(对返回的数据进行的判断)。
9.使用Intellij IDEA的HTTP Client工具测试控制器端口。
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155243_8ebbf9f0_5723576.png "9-1.png")
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155313_730581ec_5723576.png "9-2.png")
10.在命令行中使用Spring-boot插件运行Spring Boot应用程序,并把嵌入式Servlet容器的默认端口8080改为9090
在main目录下的resources文件中的application.properties文件中添加如下代码:server.port=9090
然后在命令行窗口输入:mvn spring-boot:run
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155645_1888ed44_5723576.png "10.png")
11.在属性文件中配置Spring Boot应用程序以debug模式运行
在属性文件中添加debug:true即可
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155722_526602a4_5723576.png "11.png")
12.在命令行中编译、打包Spring Boot应用程序
在命令行中输入mvn clean package即可
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155803_e2934a76_5723576.png "12.png")
13.在命令行中使用java命令运行Spring Boot应用程序的jar文件
在命令行窗口运行java -jar demo-0.0.1-SNAPSHOT.jar即可
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155842_175bc6fd_5723576.png "13.png")
14.在命令行中使用java命令运行Spring Boot应用程序的jar文件,带参数改变嵌入式Servlet容器的默认端口8080改为9090
在命令行窗口运行java -jar demo-0.0.1-SNAPSHOT.jar --server.port=9090即可
运行结果:
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155916_fd0530c3_5723576.png "14-1.png")
![输入图片说明](https://images.gitee.com/uploads/images/2020/0405/155935_23309a6a_5723576.png "14-2.png")