Spring Boot快速入门

原创
2016/12/17 21:33
阅读数 1.8K

简介

    您在使用Spring时是否对大堆的配置文件感到头疼?是否对重复的复制粘贴配置文件感到厌烦?虽然Spring的组件代码是轻量级的,但是它的配置确实重量级的。Spring2.5引入的基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式xml配置。Spring3.0引入了基于java的配置,这是一种类型安全的可重构的配置方式,可以替代xml。

    但是,尽管如此,我们依旧无法逃离配置的魔抓。开启某些Spring特性时,比如事物、spring mvc,还是需要配置xml或java进行显式配置。启用第三方类库时也需要显式配置,比如Thymeleaf的web视图等等。那么不妨试一下springboot,您可以更简单的构建一个spring应用。

Spring Boot的四个核心:

  • 自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能够自动提供相应配置。
  • 起步依赖:告诉Spring Boot需要什么功能,就引入需要的库。
  • 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统的项目构建。
  • Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。

快速入门

        本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。

        本文采用java 1.8.0_111、Spring Boot 1.4.2、Maven 3.0.5调试通过。

使用Maven构建项目

        本文只介绍构建springboot的一种方式,其他方式大家可以google一下,言归正传,一下方式是使用IDEA构建springboot的步骤:

        1、菜单中依次选择File --> New --> Project... 如图:

 

        2、在菜单中选择Spring Initializr ,大家可以选择自己本地的jdk版本,此处我选择的java 1.8.0_111,Service URL默认即可,若你的环境有多个版本的JDK,注意到选择java jdk的时候请选择java1.7以上的版本,如图:

          3、点击Next,此处大家可以定义自己的Maven项目参数等,此处不做过多介绍,为了演示,此处我使用默认内容,如图:

        4、点击Next,此处大家可以选择需要使用的springboot版本,以及需要添加的起步依赖的组件,因为只是演示最简单的springboot功能,此处只选择Web组件即可,如图:

        5、点击Next,此处需要大家填写自己项目的名称以及项目路径,如图:

        6、点击Finish构建过程即结束。

项目结构解析

        通过以上步骤,完成了基本的构建过程,项目结构如上图,那么介绍一下项目结构

  • src/main/java/com/example 下的DemoApplication是整个程序的入口。
  • src/main/resources下为放配置文件的位置,默认配置文件为application.properties
  • src/test/下的DemoApplictaionTests是单元测试入口
  • src/main/resources/static此目录是默认存放web静态资源的目录
  • src/main/resources/templates 此目录是默认存放引擎模板的目录,如velocity、thymeleaf

pom解读

        当前pom.xml内容如下,仅引入了两个模块:

  • spring-boot-starter-web:web核心模块
  • spring-boot-starter-test:单元测试模块
<dependencies>
   <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>
</dependencies>

编写hello world

  • 创建HelloWorldController类,如下:
@RestController
public class HelloWorldController {
    @RequestMapping(value="/helloWorld")
    public String helloWorld(){
        return "HelloWorld!";
    }
}
  • 在DemoApplication右键run开启主程序,打开浏览器访问http://localhost:8080/helloWorld,可以看到页面显示HelloWorld!

单元测试

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

package com.example;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.mock.web.MockServletContext;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;


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;

@RunWith(SpringRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@SpringBootTest
public class DemoApplicationTests {
	private MockMvc mvc;
	@Before
	public void setUp() throws Exception {
		mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
	}
	@Test
	public void contextLoads() throws Exception {
		mvc.perform(MockMvcRequestBuilders.get("/helloWorld").accept(MediaType.APPLICATION_JSON))
				.andExpect(status().isOk())
				.andExpect(content().string(equalTo("Hello World!")));
	}

}

         至此我们构建了一个简单的Spring Boot项目。

展开阅读全文
打赏
5
35 收藏
分享
加载中
更多评论
打赏
0 评论
35 收藏
5
分享
返回顶部
顶部