Spring Boot快捷入门

Spring

简介

在你第1次接触和读书Spring框架的时候,是或不是因为其繁杂的布署而后退了?在你第n次采纳Spring框架的时候,是不是觉得一堆反复黏贴的配备有一对嫌恶?那么你就不妨来试试看使用Spring
Boot来让您更易上手,更不难高效地构建Spring应用!

Spring
Boot让我们的Spring应用变的更轻量化。比如:你能够只是依靠一个Java类来运转一个Spring引用。你也得以打包你的运用为jar并透过动用java
-jar来运作你的Spring Web应用。

Spring Boot的要紧优点:

  • 为所有Spring开发者更快的入门
  • 开箱即用,提供种种默许配置来简化项目布局
  • 内嵌式容器简化Web项目
  • 未曾冗余代码生成和XML配置的渴求

快速入门

本章主要目的成功Spring
Boot基础项目标构建,并且已毕一个简便的Http请求处理,通过这一个例子对Spring
Boot有一个最先的刺探,并经验其布局简单、开发快捷的特色。

系统要求:

  • Java 7及以上
  • Spring Framework 4.1.5及以上

正文选取Java 1.8.0_73Spring Boot 1.3.2调剂通过。

选用Maven构建项目

  1. 通过SPRING INITIALIZR工具发出基础项目
  2. 访问:http://start.spring.io/
  3. 挑选构建工具Maven Project、Spring
    Boot版本1.3.2以及部分工程中央音信,可参看下图所示

    SPRING INITIALIZR

  4. 点击Generate Project下载项目压缩包

  5. 解压项目包,并用IDE以Maven品类导入,以IntelliJ IDEA 14为例:
  6. Java,菜单中拔取File–>New–>Project from Existing Sources...
  7. 慎选解压后的花色文件夹,点击OK
  8. 点击Import project from external model并选择Maven,点击Next究竟得了。
  9. 若你的环境有三个版本的JDK,注意到选取Java SDK的时候请接纳Java 7上述的版本

品类社团解析

类型布局

经过地点步骤落成了根基项目标创制,如上图所示,Spring
Boot的根基结构共三个文本(具体路径依照用户生成项目时填写的Group所有出入):

  • src/main/java下的先后入口:Chapter1Application
  • src/main/resources下的计划文件:application.properties
  • src/test/下的测试入口:Chapter1ApplicationTests

生成的Chapter1ApplicationChapter1ApplicationTests类都得以直接运行来启动当前创建的项目,由于当下该类型未同盟其余数据访问或Web模块,程序会在加载完Spring之后为止运行。

引入Web模块

当前的pom.xml情节如下,仅引入了七个模块:

  • spring-boot-starter:主题模块,包含自动配置帮衬、日志和YAML
  • spring-boot-starter-test:测试模块,包含JUnit、Hamcrest、Mockito

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

引入Web模块,需添加spring-boot-starter-web模块:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

编写HelloWorld服务

  • 创建package命名为com.didispace.web(按照实际情状修改)
  • 创建HelloController类,内容如下

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }

}
  • 开行主程序,打开浏览器访问http://localhost:8080/hello,可以观察页面输出Hello World

编排单元测试用例

打开的src/test/下的测试入口Chapter1ApplicationTests类。下边编辑一个简短的单元测试来模拟http请求,具体如下:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class Chapter1ApplicationTests {

    private MockMvc mvc;

    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }

    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World")));
    }

}

使用MockServletContext来构建一个空的WebApplicationContext,那样大家创立的HelloController就能够在@Before函数中创制并传递到MockMvcBuilders.standaloneSetup()函数中。

  • 小心引入上面内容,让statuscontentequalTo函数可用

import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

时至前几日已做到目的,通过Maven构建了一个空白Spring
Boot项目,再通过引入web模块达成了一个差不离的哀求处理。

相关文章