第3章 一个Hello World项目

这一章我们使用 idea 来新建一个 Spring Boot 的 Web 项目 Hello World

首先我们在 idea 中,选择 FileNewProject 新建一个项目,我们选择使用 Speing Initialzr 新建一个项目:
在这里插入图片描述

输入我们的 groupId :com.springboot.blog 和 artifactId : hello-world ,然后next
在这里插入图片描述

添加 LombokSpring 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 项目的一个过程,更过内容可以查看源代码了解。

源代码

hello-world

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值