什么是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以及一些工程基本信息,可参考下图所示:
SpringBoot入门(一):HelloWorld-小白菜博客
● 3、点击Generate Project下载项目压缩包
● 4、解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done,结果如下图所示:
SpringBoot入门(一):HelloWorld-小白菜博客
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>

依赖的层级关系如下图:
SpringBoot入门(一):HelloWorld-小白菜博客
● 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可以非常快速地构建项目,当我们想使用框架时,添加一个依赖就可以。