SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
本文源码:GitHub·点这里 || GitEE·点这里
一、SpringBoot 框架的特点
1、SpringBoot2.0 特点
1)SpringBoot继承了Spring优秀的基因,上手难度小
2)简化配置,提供各种默认配置来简化项目配置
3)内嵌式容器简化Web项目,简化编码
Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,只需要在 pom 文件中添加如下一个 starter-web 依赖即可.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
4)发展趋势看
微服务是未来发展的趋势,项目会从传统架构慢慢转向微服务架构,因为微服务可以使不同的团队专注于更小范围的工作职责、使用独立的技术、更安全更频繁地部署。
2、一张图形容学SpringBoot的心情
img
二、搭建SpringBoot的环境
1、创建一个Maven项目

2、引入核心依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3、编写配置文件
application.yml
# 端口
server:
port: 8001
4、启动文件注解
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class,args) ;
}
}
丝毫没有问题,就这样吧启动上面这个类,springboot的基础环境就搭建好了。
想想之前的Spring框架的环境搭建,是不是就是这个感觉:意会一下吧。
三、SpringBoot2.0 几个入门案例
1、创建一个Web接口
import com.boot.hello.entity.ProjectInfo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* SpringBoot 2.0 第一个程序
*/
@RestController
public class HelloController {
@RequestMapping("/getInfo")
public ProjectInfo getInfo (){
ProjectInfo info = new ProjectInfo() ;
info.setTitle("SpringBoot 2.0 基础教程");
info.setDate("2019-06-05");
info.setAuthor("知了一笑");
return info ;
}
}
@RestController 注解 等价 @Controller + @ResponseBody 返回Json格式数据。
2、参数映射
1)首先看看SpringBoot 如何区分环境

这里标识配置加载指定的配置文件。
2)参数配置
application-pro.yml
user:
author: 知了一笑
title: SpringBoot 2.0 程序开发
time: 2019-07-05
3)参数内容读取
@Component
public class ParamConfig {
@Value("${user.author}")
private String author ;
@Value("${user.title}")
private String title ;
@Value("${user.time}")
private String time ;
// 省略 get 和 set 方法
}
4)调用方式
/**
* 环境配置,参数绑定
*/
@RestController
public class ParamController {
@Resource
private ParamConfig paramConfig ;
@RequestMapping("/getParam")
public String getParam (){
return "["+paramConfig.getAuthor()+";"+
paramConfig.getTitle()+";"+
paramConfig.getTime()+"]" ;
}
}
3、RestFul 风格接口和测试
1)Rest风格接口
/**
* Rest 风格接口测试
*/
@RestController // 等价 @Controller + @ResponseBody 返回Json格式数据
@RequestMapping("rest")
public class RestApiController {
private static final Logger LOG = LoggerFactory.getLogger(RestApiController.class) ;
/**
* 保存
*/
@RequestMapping(value = "/insert",method = RequestMethod.POST)
public String insert (UserInfo userInfo){
LOG.info("===>>"+userInfo);
return "success" ;
}
/**
* 查询
*/
@RequestMapping(value = "/select/{id}",method = RequestMethod.GET)
public String select (@PathVariable Integer id){
LOG.info("===>>"+id);
return "success" ;
}
}
2)测试代码
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MockServletContext.class)
@WebAppConfiguration
public class TestRestApi {
private MockMvc mvc;
@Before
public void setUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new RestApiController()).build();
}
/**
* 测试保存接口
*/
@Test
public void testInsert () throws Exception {
RequestBuilder request = null;
request = post("/rest/insert/")
.param("id", "1")
.param("name", "测试大师")
.param("age", "20");
mvc.perform(request)
.andExpect(content().string(equalTo("success")));
}
/**
* 测试查询接口
*/
@Test
public void testSelect () throws Exception {
RequestBuilder request = null;
request = get("/rest/select/1");
mvc.perform(request)
.andExpect(content().string(equalTo("success")));
}
}
这样SpringBoot2.0的入门案例就结束了,简单,优雅,有格调。
四、源代码
GitHub·地址
https://github.com/cicadasmile/spring-boot-base
GitEE·地址
https://gitee.com/cicadasmile/spring-boot-base

SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口的更多相关文章
- SpringBoot2.0 基础案例(12):基于转账案例,演示事务管理操作
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.事务管理简介 1.事务基本概念 一组业务操作ABCD,要么全部 ...
- SpringBoot2.0 基础案例(14):基于Yml配置方式,实现文件上传逻辑
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.文件上传 文件上传是项目开发中一个很常用的功能,常见的如头像上 ...
- SpringBoot2.0 基础案例(08):集成Redis数据库,实现缓存管理
一.Redis简介 Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elastic ...
- SpringBoot2.0 基础案例(16):配置Actuator组件,实现系统监控
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.Actuator简介 1.监控组件作用 在生产环境中,需要实时 ...
- SpringBoot2.0 基础案例(15):配置MongoDB数据库,实现增删改查逻辑
本文源码:GitHub·点这里 || GitEE·点这里 一.NoSQL简介 1.NoSQL 概念 NoSQL( Not Only SQL ),意即"不仅仅是SQL".对不同于传统 ...
- SpringBoot2.0 基础案例(13):基于Cache注解模式,管理Redis缓存
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.Cache缓存简介 从Spring3开始定义Cache和Cac ...
- SpringBoot2.0 基础案例(10):整合Mybatis框架,集成分页助手插件
一.Mybatis框架 1.mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获 ...
- SpringBoot2.0 基础案例(09):集成JPA持久层框架,简化数据库操作
一.JAP框架简介 JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范.主要是为了简化持久层开发以及整合ORM技术,结束H ...
- SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面
一.Druid连接池 1.druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目.Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能.功能强大,能防SQL注入,内置Login ...
随机推荐
- 2018.11.06 生成器函数进阶&列表推导式&生成器表达式
1.生成器函数进阶 2.列表推导式 3.生成器表达式
- Red Black Tree 红黑树 AVL trees 2-3 trees 2-3-4 trees B-trees Red-black trees Balanced search tree 平衡搜索树
小结: 1.红黑树:典型的用途是实现关联数组 2.旋转 当我们在对红黑树进行插入和删除等操作时,对树做了修改,那么可能会违背红黑树的性质.为了保持红黑树的性质,我们可以通过对树进行旋转,即修改树中某些 ...
- Git 忽略上传文件设置 .gitignore exclude
1.项目根目录下创建.gitignore vi .gitignore #输入需要忽略的文件,支持正则表达式, *.o *.exe*.pyc 可以用git status来检查是否生效 未添加文件前: M ...
- ubuntu搭建ftp
腾讯云服务器linux Ubuntu操作系统安装ftp服务器vsftpd Ubuntu Server 16.04.1 LTS 64位 登录服务器 xshell 登录服务器 用户名如果没自定义默认:u ...
- iOS中版本号的获取及其意义
//对应的是发布的版本号,也就是build #define APP_VERSION [[[NSBundle mainBundle] infoDictionary] objectForKey:@&quo ...
- android4.3 蓝牙BLE编程
一.蓝牙4.0简介 蓝牙4.0标准包含两个蓝牙标准,准确的说,是一个双模的标准,它包含传统蓝牙部分(也有称之为经典蓝牙Classic Bluetooth)和低功耗蓝牙部分(Bluetooth Low ...
- sdutoj 2373 Black and white painting( 规律统计计算 3Y )
Black and white painting 题目描述 You are visiting the Centre Pompidou which contains a lot of modern pa ...
- Java 使用POI操作EXCEL及测试框架搭建、测试开发的一些想法
无论是UI自动化测试还是接口自动化测试都需要进行数据驱动,一般很常见的一种方式就是用excel来管理数据,那么就涉及到一些代码对EXCEL的操作,之前我们介绍过用CSV来处理EXCEL,但是它的功能还 ...
- valid No such filter: 'drawtext'"
libfreetype is missing. You'll have to rebuild FFmpeg with this library or disable overlays. --enabl ...
- Log4j输出格式控制--log4j的PatternLayout参数含义
参数 说明 例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字 ...