Spring Boot 之 “Hello,World“

序言SpringBoot 的核心理念是约定优于配置,例如在资源目录的static放置静态资源就能直接访问,templates目录放置动态页面就能自动初始化和实现访问,例如Thymeleaf、FreeMaker等。

创建项目:参考链接1 , 参考链接2
在这里插入图片描述

项目名称:Demo


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@SpringBootApplication
@Controller
public class DemoApplication {

    @GetMapping("/")
    @ResponseBody
    public String index() {
        return "Hello, World";
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

运行结果
在这里插入图片描述

若写成单独Controller

/**
 * User: Cubby
 * Describe: Spring Boot test Controller
 */
@RestController
public class HelloController {

   @GetMapping("/")
   @ResponseBody
   public String index() {
       return "Hello, World";
   }
 
    @GetMapping("Hi.action")
    public String Hi() {
        return "Hi,2021年12月27日 农历冬月廿四 星期一 ";
    }

}

结果如下:
在这里插入图片描述
在这里插入图片描述

test测试类


import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import static org.hamcrest.core.StringContains.containsString;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringRunner.class)
@AutoConfigureMockMvc // start MockMvc
@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private MockMvc mockMvc; // 注入MockMvc

    @Test
    void contextLoads() throws Exception {

    }
    @Test
    public void testHelloController() throws Exception {
        mockMvc.perform(MockMvcRequestBuilders.get("/"))  // request style + address
                .andDo(print())  // print effect
                .andExpect(status().isOk())  // prepare state
                .andExpect(content().string(containsString("Hello, World")));
    }

}

运行结果
在这里插入图片描述
什么是Mock
在面向对象的程序设计中,模拟对象(英语:mock object)是以可控的方式模拟真实对象行为的假对象。在编程过程中,通常通过模拟一些输入数据,来验证程序是否达到预期结果。

为什么没有XML?
回答:回顾传统Spring项目,我们需要先后配置web/spring/mvc等XML配置文件。而SpringBoot则不需要XML,只需借助注解和启动类就能启动项目。这背后得益于SpringBoot自动配置的构建原理,例如我们在POM文件引入了Web依赖,则项目在启动的时候检测到ClassPath存在Web依赖,就会自动执行WEB环境初始化,轻松完成SpringMVC初始化

为什么没有webapp目录?
回答:SpringBoot使用Resources目录放置静态文件和动态资源。比如static目录可以直接读取CSS/JS/IMG等静态资源,而templates目录可以直接读取动态模板,例如Thymeleaf 和 FreeMarker 等。不过值得注意的是,如果工程项使用War类型进行打包,则必须创建webapp目录.

application.properties / application.yml 是什么?
回答:这是 SpringBoot 项目的核心配置文件.

HelloWorldApplication 是什么?
回答:作为项目的启动类,添加Main方法作为启动入口,并添加@SpringBootApplication 便携式启动注解。

@SpringBootApplication 主要包含三大组件:

@EnableAutoConfiguration 开启自动配置.
@ComponentScan 开启组件扫描 例如@Controller,@Service等.
@Configuration 标记配置类 例如制定方法为上下文提供 Bean.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值