# exp-01 **Repository Path**: spverk/exp-01 ## Basic Information - **Project Name**: exp-01 - **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-03-27 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 实验一 使用Spring Boot构建应用程序 #### 基本信息 实验名称:使用SpringBoot构建应用程序     实验序号:1 姓名:黄思滨   学号:201741412129    班级:17软卓1 实验地址:中国    实验日期:2020-3-27    指导老师:黎志雄 教师评语:    实验成绩:    百分制: #### 一.实验目的 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文件 #### 二.实验环境 1、 JDK 13 2、 Maven 3.6+ 3、 IntelliJ IDEA #### 三.实验任务 1、 通过IntelliJ IDEA的Spring Initializr向导创建Spring Boot项目;
2、 添加两个功能模块:spring MVC、lombok;
3、 添加阿里云镜像仓库作为项目maven仓库 ``` aliyun aliyun maven https://maven.aliyun.com/repository/public ``` 4、 解释项目pom.xml文件中主要标签的意义; 见所上传的pom文件 5、 配置jetty或undertow作为Spring Boot应用程序的默认Servlet容器; Tomcat 是默认的嵌入式 Web 服务器容器 ``` org.springframework.boot spring-boot-starter-jetty 2.2.5.RELEASE ``` ``` org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat ``` 6、 添加一个简单的Spring Mvc控制器组件,用于测试,如下图: 编写一个controller ``` @RestController static class Testcontroller{ @GetMapping("/get") public String indexget(){ return "你好,get"; } @PostMapping("/post") public String indexpost(){ return "你好,post"; } } ``` 7、定义一个CommandLineRunner的Bean,用于检查Spring Boot应用程序启动完成后在Spring IoC容器中注册的所有Bean。 ``` @Bean public CommandLineRunner commandLineRunner(ApplicationContext ctx){ return args -> { System.out.println("由Spring Boot注册的所有Bean: "); String[] beanNames = ctx . getBeanDefinitionNames(); Arrays.sort(beanNames); for (String beanN```ame : beanNames) { System.out.println(beanName); } }; } ``` 结果如下:
8、编写一个简单的单完测试 有三种方式: 1)@SpringBootTest 2)@AutoConfigureMockMvc 3)@WebMvcTest 与 @MockBean ``` @Test public void getHello() throws Exception{ mvc.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect((ResultMatcher) content().string(equalTo("你好,spring boot"))); } ``` 9、 使用IntelliJ IDEA的HTTP Client工具测试控制器端口; 新建一个test.http编写以下内容: ``` GET http://localhost:8080/get ### POST http://localhost:8080/post Content-Type: application/json { "id":"123", "word":"huang" } ### ``` 结果如下:
10、 在命令行中使用spring-boot插件运行Spring Boot应用程序,并把嵌入式Servlet容器的默认端口8080改为9090; ``` mvn spring-boot:run -Dspring-boot.run.jvmArgument="-Ddebug -Dserver.port=9090" ``` 结果如下:
11、 在属性文件中配置Spring Boot应用程序以debug模式运行。 ``` 属性文件中配置debug=ture ``` 结果如下:
12、 在命令行中编译、打包Spring Boot应用程序。 打包命令 ``` mvn clean package -Dmaven.test.skip=true ``` 打包结果
13、 在命令行中使用java命令运行Spring Boot应用程序的Jar文件。 运行命令(8080端口) ``` java -jar target/exp-01-0.0.1-SNAPSHOT.jar ``` 结果如下:
14、 在命令行中使用java命令运行Spring Boot应用程序的Jar文件,带参数改变嵌入式Servlet容器的默认端口8080改为9090。 运行命令(9090端口) ``` java -jar target/exp-01-0.0.1-SNAPSHOT.jar --server.port=9090 ``` 结果如下:
15、 使用markdown标记语方编写实验报告,并生成README.md文件放在项目仓库的根目录。