快速搭建一个 Spring Boot 项目

部分参考于《深入实践Spring Boot》、《Spring实战 第四版》与程序猿DD的有关博客。

参考(嘟嘟独立博客):http://tengj.top/2017/02/26/springboot1/

搭建项目:

创建Spring Boot操作步骤如下:
1.在File菜单里面选择 New > Project,然后选择Spring Initializr,接着如下图一步步操作即可。

项目结构

根据上面的操作已经初始化了一个Spring Boot的框架了,项目结构如下:

如你所见,项目里面基本没有代码,除了几个空目录外,还包含如下几样东西。

    • pom.xml:Maven构建说明文件。
    • Chapter1Application.java:一个带有main()方法的类,用于启动应用程序(关键)。
    • Chapter1ApplicationTests.java:一个空的Junit测试类,它加载了一个使用Spring Boot字典配置功能的Spring应用程序上下文。
    • application.properties:一个空的properties文件,你可以根据需要添加配置属性。

------------------------------------------------------------------------------------------分割线------------------------------------------------------------------------------------------------------------------

Spring Boot 优点

  1. 轻量化
  2. 提供 Spring 框架各种默认配置来简化项目配置
  3. 内嵌 Web 容器
  4. 没有冗余代码生成和XML配置要求

Maven 导包

  • spring-boot-starter:核心模块,包括了自动配置支持、日志和YAML
  • spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito
  • spring-boot-starter-web:Web模块

开工

一个 Spring Boot 案例应该包括四个部分(主加载类、逻辑实现类、单元测试类、以及资源配置文件)。

1. 资源配置文件:这个文件主要记录了框架下各种设置;前面,我们提到过 Spring Boot 提供 Spring 的默认设置,所以一开始并不需要对这个文件做任何修改,让框架内嵌的Web容器加载该文件即可。* 注意:命名为application.properties *,并且默认端口为8080。

2. 主加载类:Spring Boot 框架下,最重要的一个类,也是启动整个框架的入口。一般有两种代码模板,好像也没有什么区别。这里先写一种:

@SpringBootApplication 

public class Application {

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

3. 逻辑实现类:就是我们提供的服务接口,一般就是我们的Controller层。这里实现一个简单的”hello world!”的Controller,便于测试。 启动项目后,访问 http://localhost:8080/hello 来访问这个控制器。

@RestController
public class HelloController { @RequestMapping("/hello")
public String index(){
return "hello world!";
}
}

4. 单元测试类:顾名思义,就是一个用来测试我们的逻辑实现类的类。

这里使用 JUnit 模拟一个 http 请求来测试我们的 HelloController。

同时,这里涉及到Spring AOP@Before,有兴趣的也可以去查看一下。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
//测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的
public class ApplicationTest { private MockMvc mvc; @Before
public void setUp() throws Exception{
//通过MockMvcBuilders.xxxSetup().build()创建一个MockMvc进行测试;
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!")))
.andDo(MockMvcResultHandlers.print())
.andReturn();
}
/**
* 1、mockMvc.perform执行一个请求。
* 2、MockMvcRequestBuilders.get("XXX")构造一个请求。
* 3、ResultActions.andExpect添加执行完成后的断言。
* 4、ResultActions.andDo添加一个结果处理器,表示要对结果做点什么事情
* 比如此处使用MockMvcResultHandlers.print()输出整个响应结果信息。
* 5、ResultActions.andReturn表示执行完成后返回相应的结果。
*/
}

最后附上, http 请求响应后的报文。

MockHttpServletRequest:
HTTP Method = GET
Request URI = /hello
Parameters = {}
Headers = {Accept=[application/json]} Handler:
Type = qg.fangrui.boot.web.HelloController
Method = public java.lang.String qg.fangrui.boot.web.HelloController.index() Async:
Async started = false
Async result = null Resolved Exception:
Type = null ModelAndView:
View name = null
View = null
Model = null FlashMap:
Attributes = null MockHttpServletResponse:
Status = 200
Error message = null
Headers = {Content-Type=[application/json;charset=ISO-8859-1], Content-Length=[12]}
Content type = application/json;charset=ISO-8859-1
Body = hello world!
Forwarded URL = null
Redirected URL = null
Cookies = []

Spring Boot 学习(一) 快速搭建SpringBoot 项目的更多相关文章

  1. 在线官网Spring Initializr 或 IntelliJ IDEA 快速搭建springboot项目

    Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置’,实现零配置. 那么,如何快速新建一个一个spring ...

  2. spring boot / cloud (十七) 快速搭建注册中心和配置中心

    spring boot / cloud (十七) 快速搭建注册中心和配置中心 本文将使用spring cloud的eureka和config server来搭建. 然后搭建的模式,有很多种,本文主要聊 ...

  3. 使用IDEA快速搭建Springboot项目

    Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程.它主要推崇的是'消灭配置’,实现零配置. 下面就介绍一下如何使用idea快速搭建 ...

  4. Spring boot 集成 Dubbo 快速搭建

    架构: 1.ZooKeeper:服务注册中心 2.api工程:提供对外暴露的服务API 3.provider:服务提供者 4.consumer:服务消费者 示例如下: (一)新建 Maven 项目 a ...

  5. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-1.快速搭建SpringBoot项目,采用Eclipse

    笔记 1.快速搭建SpringBoot项目,采用Eclipse     简介:使用SpringBoot start在线生成项目基本框架并导入到eclipse中 1.站点地址:http://start. ...

  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-2.快速搭建SpringBoot项目,采用IDEA

    笔记 2.快速搭建SpringBoot项目,采用IDEA     简介:使用SpringBoot start在线生成项目基本框架并导入到IDEA中 参考资料:         IDEA使用文档    ...

  7. spring boot学习01【搭建环境、创建第一个spring boot项目】

    1.给eclipse安装spring boot插件 Eclipse中安装Spring工具套件(STS): Help -> Eclipse Marketplace... 在Search标签或者Po ...

  8. SpringBoot学习:在Interillj Idea上快速搭建SpringBoot项目

    一.创建SpringBoot项目 二.导入Jar包(pom.xml) <?xml version="1.0" encoding="UTF-8"?> ...

  9. SpringBoot学习:IDEA中快速搭建springboot项目

    项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)IDEA中创建maven web项目 创建好项目后设置项目的编译路径: (二)引入 ...

随机推荐

  1. 简单地说, cpp中的纯虚函数就是抽象类的具体实现

    简单地说, cpp中的纯虚函数就是抽象类的具体实现.包含了纯虚函数的类就是抽象类.

  2. Android java 多线程(三)

  3. 20145301赵嘉鑫《网络对抗》Exp8 Web基础

    20145301赵嘉鑫<网络对抗>Exp8 Web基础 基础问题回答 什么是表单? 表单是一个包含表单元素的区域,主要负责数据采集部分.表单元素允许用户在表单中输入信息.一个表单有三个基本 ...

  4. Python3基础 str title 单词首字母大写,其余均为小写

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Jackson 使用和注意项

    依赖maven: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId ...

  6. 2016年蓝桥杯B组C/C++省赛(预选赛)试题

    2016年蓝桥杯B组C/C++ 点击查看2016年蓝桥杯B组省赛题目解析(答案) 第一题:煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成 ...

  7. linq——group by

    多列排序&&聚合函数 var result = from i in                (from uh in db.UserHistories                ...

  8. C#中的DllImport使用方法

    DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息 DllImport属性应用于方法,要求最少要 ...

  9. hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b

    hdoj上一道有意思的题目,题目: 人见人爱a+b 敲的也蛮快的,大概十分钟左右就AC了.代码如下: 人见人爱a+b #include<stdio.h> int main() { int ...

  10. UVa 12563 劲歌金曲(0-1背包)

    https://vjudge.net/problem/UVA-12563 题意: 在一定的时间内连续唱歌,最后一首唱11分钟18秒的劲歌金曲,问最多能长多长时间. 思路: 0-1背包问题,背包容量为t ...