您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

SpringBoot 快速入门+3分钟打造RestAPI

时间:2019-11-12 14:38:57  来源:今日头条  作者:编程仔日常

序言:SpringBoot 是在Spring基础上实现了自动配置的基础框架,快速帮助Spring整合各种第三方框架,让项目配置化繁为简,大幅提高开发效率。

一、SpringBoot 五大特性

  • 1.座靠Spring (颠覆传统)

  • 2.内嵌Tomcat(无需外部署)

  • 3.提供各种Starter (开箱即用 +简化依赖 )

  • 4.提供自动配置 ( 妈妈再也不用担我写错配置了)

  • 5.告别XML(实现约定大于配置 )
     

二、SpringBoot 快速入门1.搭建开发环境
  • JDK版本:Oracle JDK 1.8+

  • 构建工具:Apache Maven 3.3.0+ (bin.zip)

  • 开发工具:IntelliJ IDEA 2017.2.6 / Eclipse 4.2+

     

2.创建第一个工程

 

使用官方推荐的 Spring Initializr 工具来构建第一个SpringBoot工程,按步骤选择Web依赖和填写信息之后,创建工程成功,如下图:

你可能会好奇:
为什么没有web.xml?
为什么没有ApplicationContext.xml?
为什么没有webapp目录?

为什么多了HelloWorldApplication?
为什么多了application.properties?

先别急,咱们先从简单的搭建流程入手,答案在最后进行揭晓。

3.POM依赖管理

打开工程的POM文件,查看继承信息和相关依赖。

 

  • spring-boot-starter-parent 作为父工程,提供SpringBoot和Spring的相关依赖定义。

  • spring-boot-starter-web 引入Web和WebMvc的相关依赖。

 

org.springframework.boot
spring-boot-starter-parent
1.5.6.RELEASE

org.springframework.boot
spring-boot-starter-web

org.springframework.boot
spring-boot-starter-test
test

4.编写RestAPI 输出HelloWorld

Spring Initializr已经默认帮我们创建了启动类,这里我们只需添加@Controller 和编写相关RestAPI即可。

@SpringBootApplication
@Controller
public class SpringbootHelloworldApplication {

@GetMapping("/")
@ResponseBody
public String index() {
return "Hello World!";
}

public static void main(String[] args) {
SpringApplication.run(SpringbootHelloworldApplication.class, args); //启动项目
}

5. 启动项目

在上面的启动类中,右键选择Run SpringbootHelloworldApplication ,查看控制台如下:

在浏览器访问:http://locahost:8080 ,返回结果如图:

6.单元测试

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc //开启MockMvc
public class SpringbootHelloworldApplicationTests {

@Autowired
private MockMvc mockMvc; //注入MockMvc

@Test
public void testHelloController() throws Exception {

mockMvc.perform(get("/")) //请求方式+地址
.andDo(print()) //打印效果
.andExpect(status().isOk()) //预期状态
.andExpect(content().string(containsString("Hello World")));
}

三、快速答疑为什么没有XML?

回答:回顾传统Spring项目,我们需要先后配置web/spring/mvc等XML配置文件。而SpringBoot则不需要XML,只需借助注解和启动类就能启动项目。这背后得益于SpringBoot自动配置的构建原理,例如我们在POM文件引入了Web依赖,则项目在启动的时候检测到ClassPath存在Web依赖,就会自动执行WEB环境初始化,轻松完成SpringMVC初始化。

为什么没有webapp目录?

回答:SpringBoot使用Resources目录放置静态文件和动态资源。比如static目录可以直接读取css/JS/IMG等静态资源,而templates目录可以直接读取动态模板,例如Thymeleaf 和 FreeMarker 等。不过值得注意的是,如果工程项使用War类型进行打包,则必须创建webapp目录

application.properties / application.yml 是什么?

回答:这是SpringBoot项目的核心配置文件

HelloWorldApplication 是什么?

回答:作为项目的启动类,添加Main方法作为启动入口,并添加@SpringBootApplication 便携式启动注解。

@SpringBootApplication 主要包含三大组件:

 

  • @EnableAutoConfiguration 开启自动配置.

  • @ComponentScan 开启组件扫描 例如@Controller,@Service等.

  • @Configuration 标记配置类 例如制定方法为上下文提供Bean.



Tags:SpringBoot   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言准确点说,这不是《从零打造项目》系列的第一篇文章,模版代码生成的那个项目讲解算是第一篇,当时就打算做一套项目脚手架,为后续进行项目练习做准备。因时间及个人经验问题...【详细内容】
2022-11-18  Tags: SpringBoot  点击:(9)  评论:(0)  加入收藏
之前介绍了运维监控系统Prometheus,然后就有同鞋问我关于时序数据库的情况,所以这里总结一下时序数据库,并以InfluxDB为例,介绍时序数据库的功能特性和使用方式,希望能对大家有所...【详细内容】
2022-11-10  Tags: SpringBoot  点击:(38)  评论:(0)  加入收藏
前几天发布了一篇java压缩文件的文章,今天有朋友跟我说,这压缩没啥技术含量啊,你再弄个压缩完然后返回前端下载的功能呗。其实吧我觉得下载功能比压缩更简单吧,压缩的递归我至少...【详细内容】
2022-11-07  Tags: SpringBoot  点击:(28)  评论:(0)  加入收藏
mybaties核心组件概念Configuration:用于描述 Mybatis 主配置文件信息,MyBatis 框架在启动时自动配置类中,会加载mapper配置文件,将配置信息转换为 Configuration 对象,然后把该...【详细内容】
2022-11-07  Tags: SpringBoot  点击:(16)  评论:(0)  加入收藏
问题描述最近项目中遇到一个问题,在某一个时刻应用系统出现了大量的ES访问超时的现象,异常日志主要为:java.io.IOException: Connection reset by peer at org.elasticsearch.c...【详细内容】
2022-11-07  Tags: SpringBoot  点击:(40)  评论:(0)  加入收藏
Java智慧小区管理系统源码 智慧物业管理系统源码开源地址:http://www.ydmdd.com/#/index/goods/28e18c96-741b-48e5-9192-af41012992d4使用SpringBoot+Mybatis+BootStrap+Lay...【详细内容】
2022-11-04  Tags: SpringBoot  点击:(37)  评论:(0)  加入收藏
本文主要讲解如何在Springboot中逐步实现对mybatis的集成应用。1、引入依赖在pom.xml文件中引入mybatis依赖。// pom.xml <dependency> <groupId>org.mybatis.spring.boo...【详细内容】
2022-11-02  Tags: SpringBoot  点击:(18)  评论:(0)  加入收藏
一、自动注入没有添加泛型问题自定义RedisTemplate<String,Object>后,在使用时,需要在自动注入的RedisTemplate中添加泛型为RedisTemplate<String,Object>,否则会报错:com.fast...【详细内容】
2022-11-01  Tags: SpringBoot  点击:(27)  评论:(0)  加入收藏
收获当遇到项目启动失败,却没有错误日志打印出来的时候,试试在run方法上加个try-catch,即可捕获到异常Mybatis的别名扫描路径不要指定的太宽泛,有可能会出现Bean名冲突,导致初始...【详细内容】
2022-10-30  Tags: SpringBoot  点击:(19)  评论:(0)  加入收藏
概念IOC:控制反转。从前需要在程序中创建对象实例;现在则通过一个外部的容器统一动态创建spring IOC 容器中的实例如何动态加载Condition:只有在特定条件满足时才加载举例 @Con...【详细内容】
2022-10-10  Tags: SpringBoot  点击:(106)  评论:(0)  加入收藏
▌简易百科推荐
讨论主题主要想搞清楚几个问题 mybatis plus是依赖了mybatis,他们之间的关系是什么? mybatis plus中“字段自动填充功能”实现源码,包括id自动生成的原理。 mybatis plus 基本...【详细内容】
2022-11-18  奋斗的架构师  今日头条  Tags:   点击:(16)  评论:(0)  加入收藏
缘由什么是 KMS ?要了解 KMS,首先要了解 DRM。DRM 是 Direct Rendering Manager 的缩写,最初只是用来支持 GPU 的,最初它负责: Initialize GPU card, load its firmware, etc. ...【详细内容】
2022-11-18  老吴嵌入式   今日头条  Tags:Display框架   点击:(11)  评论:(0)  加入收藏
前言准确点说,这不是《从零打造项目》系列的第一篇文章,模版代码生成的那个项目讲解算是第一篇,当时就打算做一套项目脚手架,为后续进行项目练习做准备。因时间及个人经验问题...【详细内容】
2022-11-18  Java热点  今日头条  Tags:SpringBoot   点击:(9)  评论:(0)  加入收藏
作者 | 褚杏娟近日,GitHub 前 CTO Jason Warner 在推特上表示,“我确信过去十年中,最大的架构错误之一就是全面使用微服务。”从单体应用到微服务的规划顺序,Warner 的建议是:单...【详细内容】
2022-11-18  InfoQ  今日头条  Tags:GitHub   点击:(15)  评论:(0)  加入收藏
一、Scrapy框架简介Scrapy是:由Python语言开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据,只需要实现少量的代码,就能够快速的抓...【详细内容】
2022-11-16  运维笔记ywbj  今日头条  Tags:Scrapy   点击:(15)  评论:(0)  加入收藏
这里首先需要说明的就是为什么要进行配置文件加密。在当今这个移动互联网横行的时代里,无论是企业的隐私还是个人的隐私都是需要得到保护的。所以我们在实际的操作中会采用...【详细内容】
2022-11-14  架构师面试宝典  今日头条  Tags:Spring Boot   点击:(16)  评论:(0)  加入收藏
深度自定义mybatis回顾mybatis的操作的核心步骤 编写核心类SqlSessionFacotryBuild进行解析配置文件 深度分析解析SqlSessionFacotryBuild干的核心工作 编写核心类SqlSessio...【详细内容】
2022-11-13    网易号  Tags:mybatis   点击:(9)  评论:(0)  加入收藏
WebRTC(Web Real-Time Communication)是为了让开发者在浏览器实现多媒体交换的技术,于2011年被加入W3C规范。当前的支持情况可以见下图。 WebRTC的核心在于建立PeerConnection...【详细内容】
2022-11-11  效能IT哥  今日头条  Tags:WEBRtc   点击:(19)  评论:(0)  加入收藏
由于hystrix官方已经停止维护了,目前spring-cloud推荐使用resilience4j来代替hystrix实现熔断、限流。熔断一般指客户端调用服务端接口出现异常时客户端侧的处理,当然也可以是...【详细内容】
2022-11-10  vivi2020一  今日头条  Tags:spring   点击:(29)  评论:(0)  加入收藏
Spring MVC 的请求处理流程 DispatcherServletDispatcherServlet继承结构 DispatcherServlet对请求的处理流程大致步骤 绑定⼀些 Attribute WebApplicationContext / Loc...【详细内容】
2022-11-08  刷刷的破壳日记  今日头条  Tags:Spring MVC   点击:(18)  评论:(0)  加入收藏
站内最新
站内热门
站内头条