一、前言
之前就有接触过SpringBoot框架,今天想回顾一下,重新一步一步搭建个SpringBoot项目,特意把每一步记录下来,重新学习学习。
如果没有下载idea的,请点击:http://www.jetbrains.com/idea/download/,顺带的附上破解地址:https://www.iteblog.com/idea/,http://idea.lanyus.com/。
如果没有配置Maven环境的请移步:
Windows:https://blog.csdn.net/yi903718741/article/details/78874429
Mac:https://www.cnblogs.com/theLostMan/p/6994750.html
Maven下载:http://maven.apache.org/download.cgi
如果下好Idea,配置好Maven,就开始造轮子吧
二、开始
1、使用Maven构建项目,参考来自:springboot(一):入门篇——纯洁的微笑,访问:http://start.spring.io/
2、选择Maven Project,Java,2.1.2。点击Generate Project,会下载一个zip包,下载下来之后,进行解压。
3、打开idea:点击File,点击Open,选中解压后的项目,把项目导入idea,这个过程会稍微有点慢,完了之后目录结构是这个样子的
目录结构介绍:
- src/main/java 程序开发以及主程序入口
- src/main/resources 配置文件
- src/test/java 测试程序
在包上右键:Refactor-Rename-Rename package,删除.RedisManager,保留com.zywork
修改了包结构之后要记得修改启动类的配置,如下图,把.RedisManager删掉
4、开始创建自己的包结构:controller、service等自定义的包
5、编辑pom.xml文件,增加:spring-boot-starter-web:为我们提供了MVC、AOP...的一系列依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
6、在新建的controller中新建一个HelloController.java类
package com.zywork.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了
7、修改application.properties文件,增加以下配置
server:
port: 8080
8、运行RedisManagerApplication.java ,访问浏览器:http://localhost:8080/hello
输出Hello World说明Spring Boot项目搭建成功了
9、如何做单元测试
打开的src/test/下的测试入口,编写简单的http请求来测试;使用mockmvc进行,利用MockMvcResultHandlers.print()打印出执行结果。
package com.zywork;
import com.zywork.controller.HelloController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloWorldContrllerTest {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
}
}