构建 Spring Boot 项目
创建一个 SpringBoot 项目,本文采用 JDK 1.8、SpringBoot 2.1.4.RELEASE、SpringCloud Greenwich.SR1 编写,具体步骤如下:
-
创建一个 Maven 工程,如下图所示:
-
在 pom.xml 添加 Spring Boot 依赖:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> </parent> <!-- spring web --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
-
创建应用 main 程序 Application.java,并编写如下代码:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
-
创建一个Controller SimpleController.java,并编写如下代码:
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController public class SimpleController { @RequestMapping(value = "/hello", method = RequestMethod.GET) public String hello(){ return "Hello World!"; } }
-
运行 Application 类中的 main 方法,如下图所示:
如上图所示,SpringBoot 应用的服务端口为:8080 (默认端口)
-
在浏览器中输入 http://127.0.0.1:8080/hello,如下图所示:
SpringBoot 配置文件
Spring Boot 的默认配置文件位置为 src/main/resources/application.properties,Spring Boot 的配置文件除了可以使用传统的 propterties 之外,还支持 YAML 文件。
-
在默认文件位置新建一个 application.yml 文件,并编写如下内容
server: port: 8888 # 服务端口 spring: application: name: SpringBootDemo # 应用名称
-
重新启动 Application.java 可以看到如下结果:
-
Spring Boot 使用 spring.profiles.active 配置定义多个不同的环境配置。新建一个 local 环境的配置文件 application-local.yml ,并修改 application.yml 内容,如下所示:
spring: application: name: SpringBootDemo # 应用名称 profiles: active: local # 环境配置
-
重启应用,结果如下所示:
SpringBoot 单元测试
-
在 pom.xml 添加如下依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency>
-
在 test/java 的目录下创建一个测试类 SimpleControllerTest.java,并编辑如下内容:
@SpringBootTest @RunWith(SpringRunner.class) public class SimpleControllerTest { @Autowired private WebApplicationContext wac; private MockMvc mockMvc; @Before public void setup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); } @Test public void whenQuerySuccess() throws Exception{ MvcResult result = mockMvc .perform( MockMvcRequestBuilders .get("/hello") .param("username","success") .contentType(MediaType.APPLICATION_JSON_UTF8) ) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcResultHandlers.print()) .andReturn(); } }