这一章我们使用 idea 来新建一个 Spring Boot 的 Web 项目 Hello World
首先我们在 idea 中,选择 File → New → Project 新建一个项目,我们选择使用 Speing Initialzr 新建一个项目:

输入我们的 groupId :com.springboot.blog 和 artifactId : hello-world ,然后next

添加 Lombok 和 Spring Web 依赖:


然后点击 Next ,确认好项目名之后点击 Finish
创建之后的项目结构如下图所示:

我们先来观察一下我们的代码,将鼠标放在 @SpringBootApplication 注解上,可以看到它其实包含了很多注解:

@EnableAutoConfiguration :根据类路径,开启 Spring 上下文的自动配置
@ComponentScan:自动扫描包下的带有 @Component 注解的bean,可以使用 @Autowired 实现自动注入功能
我们在 com.springboot.blog.controller 包下新建一个 Controller 类—— HelloController:

HelloController 类代码如下:
@RestController // @RestController = @Controller + @ResponseBody,返回一个符合restful风格的 json串
public class HelloController {
@RequestMapping("/hello")
public String Hello() {
return "Hello World!";
}
}
接着我们在 test 的 com.springboot.blog.controller 包下新建一个 HelloControllerTest 测试类,使用测试用例来测试我们 HelloController的中 hello 方法,HelloControllerTest 代码如下:
@SpringBootTest
public class HelloControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
void contextLoads() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().string(Matchers.equalTo("Hello World!")));
}
}
运行上面的测试用例,会提示我们测试失败,失败信息如下:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.test.web.servlet.MockMvc' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
这是因为我们测试用例运行的时候找不到 MockMvc,导致的,在idea中我们也可以看到即使我们使用了 @Autowired 注解 来自动注入了 MockMvc , 还是会提示无法自动注入

这个时候我们需要在测试类上添加 @AutoConfigureMockMvc 注解来解决这个错误,完整测试用例代码如下:
@SpringBootTest
@AutoConfigureMockMvc // 在使用 MockMvc 进行测试时,一定不要忘了加上该注解
public class HelloControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
void contextLoads() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().string(Matchers.equalTo("Hello World!")));
}
}
处理完前边的自动注入错误,我们再来运行我们的测试用例,可以看到测试用例运行成功:

这时运行 HelloWorldApplication 启动我们的项目,在浏览器访问 http://localhost:8080/hello 可以看到下面的结果:

以上,就是我们在idea中新建 Spring Boot 项目的一个过程,更过内容可以查看源代码了解。