SpringBoot入门(一):HelloWorld
什么是spring boot
Spring Boot是由Pivotal团队开发的全新框架,其目的是为了让开发者从繁杂的配置文件中解脱出来。使用Spring Boot可以很快速构建一个基于Spring的独立运行程序,实现分布式架构、微服务架构。个人感觉Spring Boot并不是全新的框架,只是默认配置了很多框架的使用方式。
spring boot的特点
● 轻松创建独立的Spring应用程序。
● 内嵌Tomcat、jetty等web容器,不需要部署WAR文件。
● 提供一系列的“starter” 来简化的Maven配置。
● 提倡“约定优于配置”的理念,自动化配置、装配Spring。
spring boot快速入门
说了那么多,都有点迫不及待了,马上试一试。
maven构建项目
● 1、访问http://start.spring.io/
● 2、选择构建工具Maven Project、Spring Boot版本2.0.3以及一些工程基本信息,可参考下图所示:
● 3、点击Generate Project下载项目压缩包
● 4、解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done,结果如下图所示:
PS:第一次导入工程,会下载jar包,速度会有点慢
引入web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
引入测试依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
依赖的层级关系如下图:
● spring-boot-starter:核心模块,包括springweb、springmvc、jackson-databind、web容器等相关的依赖
● spring-boot-starter-test:测试模块,包括Junit、Json、Mockito等相关依赖
增加一个controller
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@RequestMapping("/")
public String index() {
return "Hello World";
}
}
直接选择DemoApplication.java文件,使用java application方式运行即可启动程序。地址栏输入http://localhost:8080/就可以访问这个controller的功能了,返回结果如下图:
单元测试
package com.example.demo.controller;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockServletContext.class)
@WebAppConfiguration
public class HelloWorldControllerTest {
private MockMvc mock;
@Before
public void setUp() throws Exception {
mock = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
}
@Test
public void testHome() throws Exception {
mock.perform(MockMvcRequestBuilders.get("/").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
总结
使用spring boot可以非常快速地构建项目,当我们想使用框架时,添加一个依赖就可以。