Spring Boot 2.X(一):入门篇
什么是 Spring Boot
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架遵循”约定优于配置“的思想,清除了原先使用Spring框架的那些样板化的配置,继承了原有Spring框架的优秀基因,从而帮助开发者快速开发应用。
SpringBoot的特性

总的来说就是简单、快速、方便。
SpringBoot的核心模块

创建SpringBoot项目
本文使用开发工具为eclipse
官网Maven构建项目
1、访问 https://start.spring.io/
2、选择构建工具中Maven Project、Java、Spring Boot版本2.1.8以及一些项目的基本信息,可参考下图所示:

3、点击 Generate Project 下载项目压缩包
4、Import —> Existing Maven Projects —> Next —> 选择解压后的文件夹 —> Finsh
Eclipse构建项目
1、首先安装SpringBoot插件,Help —> Eclipse Marketplace —> 搜索'Spring' —> 安装Spring Tools 4 - for Spring Boot··· —> Install,直至完成restart
2、File —> New —> Project,弹出新建项目的框
3、搜索‘Spring’,找到选择Spring Boot子目录下的Spring Starter Project,点击Next
4、填写相关项目信息后,点击Next,选择需要的依赖包,再点击Next,确认无误后Finish,完成创建。
HelloWorld
我们根据上面构建了一个helloworld项目,基于它我们来实现简单的web示例以及测试示例
1.项目目录结构介绍

如上图所示,Spring Boot 的基础结构共三个大块:
1、src/main/java Java源代码目录,主程序入口 HelloworldApplication,可以通过直接运行该类来启动 Spring Boot 应用
2、src/main/resources 资源文件目录,该目录用来存放应用的一些配置以及静态资源。application.properties为配置文件,可以配置应用名、服务器端口、数据库链接等等。由于引入了Web模块,因此产生了 static 目录与 templates 目录,static 用于存放静态资源,如图片、CSS、JavaScript等,templates 用于存放 Web 页面的模板文件。
3、src/test/java 单元测试目录,生成的 HelloworldApplicationTests 通过 JUint 4 实现,可以直接用运行 Spring Boot 应用的测试。
2.Maven 配置分析
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>helloworld</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- Spring Boot 版本:2.1.8.RELEASE
- 打包形式: jar (Spring Boot 默认的打包形式)
- pom.xml 文件中项目依赖 dependencies 默认有两个模块:
spring-boot-starter-web全栈Web开发模块,包含嵌入式Tomcat、Spring MVC。spring-boot-starter-test通用测试模块,包含JUnit、Hamcrest、Mockito。
项目构建的 build 部分:引入了 Spring Boot 的 Maven 插件。
3.实现一个简单的应用
- 新建 package,命名为 com.example.demo.controller ,可以根据实际的构建情况修改自己的路径。
- 新建 HelloController 类,代码如下:
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}
- 启动应用,通过浏览器访问 http://localhost:8080/hello ,我们可以看到返回了预期的结果:Hello World 。
4.单元测试
- 打开 src/test/java 下的测试入口 HelloApplicationTests ,编写一个简单的单元测试来模拟 HTTP 请求。代码如下:
@RunWith(SpringJUnit4ClassRunner.class)//引入Spring对JUnit4的支持
@SpringBootTest
public class HelloApplicationTests {
private MockMvc mvc;//用于模拟调用 Controller 的接口发起请求,
@Before //预加载内容,用来初始化对 HelloController 的模拟
public void setUp() throws Exception{
mvc=MockMvcBuilders.standaloneSetup(new HelloController()).build();
}
@Test
public void hello() throws Exception{
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello World")));
}
}
注意需要引入下面的静态引用,让 status 、content 、 equalTo 函数可用:
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;开发环境中调试
引入热部署依赖,修改代码后就无须手动重启了。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
总结
使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。
示例代码
非特殊说明,本文版权归 朝雾轻寒 所有,转载请注明出处.
原文标题: Spring Boot 2.X(一):入门篇
原文地址:https://www.zwqh.top/article/info/1
如果文章对您有帮助,请扫码关注下我的公众号,文章持续更新中...

Spring Boot 2.X(一):入门篇的更多相关文章
- Spring Boot(一)入门篇
SpringBoot概述 Spring Boot的诞生简化了Spring应用开发,SpringBoot提供对Spring容器.第三方插件等很多服务的管理.对于大部分Spring应用,无论是简单的web ...
- Spring Boot 2.x 快速入门(下)HelloWorld示例详解
上篇 Spring Boot 2.x 快速入门(上)HelloWorld示例 进行了Sprint Boot的快速入门,以实际的示例代码来练手,总比光看书要强很多嘛,最好的就是边看.边写.边记.边展示. ...
- spring boot编程思想(核心篇) pdf 下载 it教程
资料简介:本书是<Spring Boot 编程思想>的核心篇,开篇总览Spring Boot核心特性,接着讨论自动装配(Auto-Configuration)与SpringApplicat ...
- spring boot集成redis基础入门
redis 支持持久化数据,不仅支持key-value类型的数据,还拥有list,set,zset,hash等数据结构的存储. 可以进行master-slave模式的数据备份 更多redis相关文档请 ...
- Spring Boot微服务架构入门
概述 还记得在10年毕业实习的时候,当时后台三大框架为主流的后台开发框架成软件行业的标杆,当时对于软件的认识也就是照猫画虎,对于为什么会有这么样的写法,以及这种框架的优势或劣势,是不清楚的,Sprin ...
- Spring Boot学习大全(入门)
Spring Boot学习(入门) 1.了解Spring boot Spring boot的官网(https://spring.io),我们需要的一些jar包,配置文件都可以在下载.添置书签后,我自己 ...
- 学习 Spring Boot 知识看这一篇就够了
从2016年因为工作原因开始研究 Spring Boot ,先后写了很多关于 Spring Boot 的文章,发表在技术社区.我的博客和我的公号内.粗略的统计了一下总共的文章加起来大概有六十多篇了,其 ...
- Spring Boot WebFlux-01——WebFlux 快速入门实践
第01课:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ...
- spring boot 初试,springboot入门,springboot helloworld例子
因为项目中使用了spring boot ,之前没接触过,所以写个helloworld玩玩看,当做springboot的一个入门例子.搜索 spring boot.得到官方地址:http://proje ...
- spring boot实战(第十二篇)整合RabbitMQ
前言 最近几篇文章将围绕消息中间件RabbitMQ展开,对于RabbitMQ基本概念这里不阐述,主要讲解RabbitMQ的基本用法.Java客户端API介绍.spring Boot与RabbitMQ整 ...
随机推荐
- CodeForces 760 C. Pavel and barbecue(dfs+思维)
题目链接:http://codeforces.com/contest/760/problem/C 题意:一共有N个烤炉,有N个烤串,一开始正面朝上放在N个位子上.一秒之后,在位子i的串串会移动到pi位 ...
- moco 入门及问题解决
废话不多说 下载: http://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/ 选择最新版本下载jar包 启动: 1:在本地jar包 ...
- 【LeetCode】DFS 总结
DFS(深度优先搜索) 常用来解决可达性的问题. 两个要点: 栈:用栈来保存当前节点信息,当遍历新节点返回时能够继续遍历当前节点.可以使用递归栈. 标记:和 BFS 一样同样需要对已经遍历过的节点进行 ...
- java字符串加密解密
java字符串加密解密 字符串加密解密的方式很多,每一种加密有着相对的解密方法.下面要说的是java中模拟php的pack和unpack的字符串加密解密方法. java模拟php中pack: /** ...
- FreeSql (二十)多表查询 WhereCascade
WhereCascade 多表查询时非常方便,有了它可以很轻松的完成类型软删除,租户条件的功能. IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseCo ...
- Dijkstra算法详细(单源最短路径算法)
介绍 对于dijkstra算法,很多人可能感觉熟悉而又陌生,可能大部分人比较了解bfs和dfs,而对dijkstra和floyd算法可能知道大概是图论中的某个算法,但是可能不清楚其中的作用和原理,又或 ...
- android 多行 RadioButton的使用
最近项目用到了多行RadioButton,随记录下. 先给出RadioButton的布局 <com.kuibu.jucai.widget.MyRadioGroup android:id=&quo ...
- SpringCloud(四)Hystrix熔断器
前面已经学习了服务注册与发现组件,负载均衡组件,这样我们的微服务系统已经可以使用了.为了保证其高可用,单个服务通常会集群部署.由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出 ...
- 装系统------- 了解常用的启动方式以及如何进入bios
1.从硬盘启动:这种方式提供了最简单的维护解决方案,其基本原理就是增加一个系统的开机启动项,每次开机的时候您都可以选择是进入本地系统还是进入PE. 安装程序并不将PE的启动项作为默认启动项,而是提供一 ...
- 〈三〉ElasticSearch的认识:搜索、过滤、排序
目录 上节回顾 本节前言 文档的搜索 URL参数条件搜索 请求体条件搜索 语法与示例: 补充: 小节总结: 文档的过滤filter 语法与举例: filter与bool constant_score ...