在之前的文章 Mac 中 VSCode 上编写 Java 中,我们使用了 IDE - VSCode 进行 Java 的知识点学习。
本文,我们用更加专业的 IDE - IntelliJ IDEA 来加速我们的项目开发。我们将基于 Spring Boot 创建 Java Web 项目。
安装
本人的开发环境如下:
mac m1java版本V11.0.12javac版本V11.0.12
笔者通过 idea version 下载了版本 2021.2.2 的开发工具 - 「IntelliJ IDEA Ultimate」2021.2.2 - macOS Apple Silicon(dmg)。为什么下载旧版本

新建 Java Web 项目
File -> New -> Project...
之后选择 Spring Initialzr,为了保持一致,Project SDK 选择了版本 11,Java 版本选择了 11,如下图:

点击 next 进行下一步的选择:

我们选择 Spring Boot 的版本是 2.7.2,然后勾选 Web -> Spring Web,点击 Finish 按钮完成创建项目。
Spring Boot 的版本读者根据情况进行选择。
编写案例
我们根据上面的步骤,创建了一个名为 chapter1-1 的项目。创建后,项目结构如下:

main文件夹下项目的开发资料test文件夹下编写测试
我们在 main/java/conm.example.chapter11 下添加个 HelloContrller.java 文件(跟 Chapter11Application.java 同级)。添加代码如下:
package com.example.chapter11;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/jimmy")
public class HelloController {
@RequestMapping("")
public String index() {
return "Jimmy";
}
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}
控制台告诉了我们 - Tomcat initialized with port(s): 8080 (http)。此时,浏览器打开 http://localhost:8080/jimmy,会出现内容:

浏览器打开 http://localhost:8080/jimmy/hello,就会出现其对应的返回内容:

疑问:那么我们要更改端口号和路径前缀呢?
我们可以在文件 main/java/resources/application.properties 中配置:
# port
server.port = 9000
# path prefix, default /
server.servlet.context-path = /demo重新启动项目之后,我们可以通过 http://localhost:8080/demo/jimmy 和 http://localhost:8080/demo/jimmy/hello 访问上面的两个内容。
测试
我们在 test/java/com.example.chapter11/Chapter11ApplicationTests.java 编写测试文件如下:
package com.example.chapter11;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@SpringBootTest
public class Chapter11ApplicationTests {
private MockMvc mvc;
@Before
public void setUp() {
mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void getHello() throws Exception {
mvc.perform(MockMvcRequestBuilders.get("/jimmy/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}上面代码中,我们只是对 /jimmy/hello 做了测试,检测其返回的状态和返回值是否都是预期。然后我们运行该文件,测试通过。


参考
- IntelliJ IDEA Versions
- Spring Boot 2.x基础教程:快速入门
- spring boot修改context path










