什么是Spring Boot?

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简而言之,Spring Boot通过提供默认配置的方式整合了所有的框架,让我们可以更加简单、快速、方便地构建应用程序。

为什么要用Spring Boot?

Spring Boot包含以下几个特性:

  1. 默认提供了大部分框架的使用方式,方便进行快速集成
  2. Spring Boot应用可以独立运行,符合微服务的开发理念
  3. Spring Boot内置WEB容器,无需部署WAR包即可运行
  4. 提供了各种生产就绪型功能,如指标,健康检查和外部配置
  5. Spring Boot通过网站提供了项目模板,方便项目的初始化

通过以上这些非常优秀的特性,Spring Boot可以帮助我们非常简单、快速的构建起我们的项目,并能够非常方便进行后续开发、测试和部署。

第一个Spring Boot项目

多说无益,实践为上。接下来,我就来建立起我们的第一个Spring Boot项目。

生成项目模板

为方便我们初始化项目,Spring Boot给我们提供一个项目模板生成网站。

1.  打开浏览器,访问:https://start.spring.io/

2.  根据页面提示,选择构建工具,开发语言,项目信息等。

3.  点击 Generate the project,生成项目模板,生成之后会将压缩包下载到本地。

4.  使用IDE导入项目,我这里使用Eclipse,通过导入Maven项目的方式导入。

项目结构说明

如下图所示,Spring Boot的项目结构比较简单,只包含三个文件夹。

  • src/main/java  放置程序开发代码
  • src/main/resources  放置配置文件
  • src/test/java  放置测试程序代码

而在其下,包含以下主要文件。

  • DemoApplication.java 应用的启动类,包含MAIN方法,是程序的入口
  • application.properties 一个空的配置文件,后续可以配置数据源等信息
  • DemoApplicationTests.java 一个简单的单元测试类
  • pom.xml mave的配置文件,这个应该不用多作介绍了吧

项目结构图

添加WEB模块

其实不用添加WEB模块,Spring Boot已经可以启动了。但是为了方便查看,我们引入WEB模块,并添加一个REST接口进行测试。

1.  引入Maven依赖

在 pom.xml中添加web依赖。

pom.xml

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.  编写REST接口

新建一个com.louis.springboot.demo.controller包,并创建一个HelloController。

HelloController.java

package com.louis.springboot.demo.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "Hello Spring Boot!";}
}

项目运行测试

1.  右键项目 -> Run as -> Maven install,开始执行Maven构建,第一次会下载Maven依赖,可能需要点时间,如果出现如下信息,就说明项目编译打包成功了。

2.  右键文件 DemoApplication.java -> Run as -> Java Application,开始启动应用,当出现如下信息的时候,就说明应用启动成功了,默认启动端口是8080。

3.  打开浏览器,访问:http://localhost:8080/hello,返回“Hello Spring Boot!”说明我们添加的REST接口已经测试通过了。

代码单元测试

如果要编写单元测试也比较容易,打开的src/test/下的DemoApplicationTests.java文件,我们编写一个测试hello接口的测试方法,对于http请求的测试,我们可以使用mockmvc来模拟,详情参见具体代码。

DemoApplicationTests.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {private MockMvc mvc;@Beforepublic void setUp() throws Exception {mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();}@Testpublic void testHello() throws Exception {mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}}

右键DemoApplicationTests.java文件 -> Run as -> Junit Test,运行测试代码,可以从单元测试视图看到单元测试案例运行成功。

开发环境调试

如果每次修改代码之后都需要重新启动WEB应用,还是有点麻烦的,Spring Boot支持热启动,修改之后可以实时生效,开发的时候打开还是可以提供一些便利性的。

打开POM文件,在dependencies标签下添加spring-boot-devtools依赖,并修改build标签下的spring-boot-maven-plugin的fork属性为true即可。

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>
</dependencies> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><fork>true</fork></configuration></plugin></plugins>
</build>

启动端口修改

Spring Boot默认的启动端口是8080,如果需要修改,需要修改配置文件。

打开application.properties文件,在其中添加如下内容,配置启动端口号。

application.properties

server.port=8000

重新启动应用,查看控制台启动信息,我们发现启动端口已经变成8000了。

Yaml格式文件使目前比较流行的配置文件,我们可以使用Yaml格式配置来代替属性文件配置,将application.properties的文件名修改为application.yml,并将文件内容替换为如下格式内容即可。

application.yml

server:port: 8000

启动Banner定制

我们在应用启动的时候,可以看到控制台显示了Spring的Banner信息,我们可以通过定制这个功能,来放置我们自己的应用信息。

如果要定制自己的Banner, 只需要在 resources 下放置一个 baner.txt 文件,输入自己的banner字符即可。

Banner字符可以通过类似以下网站生成:

http://patorjk.com/software/taag
http://www.network-science.de/ascii/

生成后复制内容到banner.txt并编辑成想要的样式,完成后重启应用,效果如下。

胡言乱语

SpringBoot就是行,整啥啥都灵。

配置很容易,运行超简单。

开发难度小,资源也不少。

前途无限好,入坑要趁早。

转载于:https://www.cnblogs.com/7788IT/p/11143454.html

Spring Boot:快速入门教程相关推荐

  1. spring boot 快速入门

    文章来源:https://www.cnblogs.com/junyang/p/8151802.html spring boot入门 -- 介绍和第一个例子 "越来越多的企业选择使用sprin ...

  2. 【720开发】 spring boot 快速入门

    spring boot 快速入门 通过构建简单的REST应用,了解spring boot的开发基本流程,验证其简单.易用特性. 环境要求 Spring Boot 2.0.0.BUILD-SNAPSHO ...

  3. 视频教程-Spring boot快速入门-Java

    Spring boot快速入门 十年项目开发经验,主要从事java相关的开发,熟悉各种mvc开发框架. 王振伟 ¥12.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 ...

  4. 芋道 Spring Boot 快速入门

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2019 超神之路,很肝~ 中文详细注释的开源项目 RP ...

  5. Spring boot快速入门:https://spring.io/quickstart网址翻译

    Spring boot快速入门官网:https://spring.io/quickstart 翻译: What you'll build You will build a classic " ...

  6. boot入门思想 spring_什么是Spring boot?Spring Boot快速入门以及Spring Boot实例教程

    转自:http://www.jianshu.com/p/d24bceea7665 简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候, ...

  7. 【转】Spring Boot快速入门

    为什么80%的码农都做不了架构师?>>>    简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复 ...

  8. Spring Boot快速入门(尚硅谷笔记)

    一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...

  9. spring boot快速入门

    1.什么是SpringBoot 一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can "just run ...

  10. Spring Integration 快速入门教程

    本文通过小的实际示例介绍Spring Integration(SI)的核心概念.Spring Integration提供了许多功能强大的组件,这些组件可以极大地增强企业架构内系统和流程的互连互通. 它 ...

最新文章

  1. 十六进制190的2进制数_十六进制数系统解释
  2. 47万实例数据集,智源联合旷视发布2020 CrowdHuman人体检测大赛
  3. 退耦电容,旁路电容和滤波电容的一些区别?
  4. 一文带你理解云原生|云原生全景指南
  5. python包括哪些部分_第一部分 Python基础篇
  6. 基于html5背景图片自适应代码
  7. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(4) - 8086/16位指令操作码字节
  8. vscodepython使用教程_技术教程_如何用vscode写python程序- 中国it教程网
  9. 语音识别如何操作?这种语音转文字方法也太好用了吧,简单高效
  10. Haproxy配置http模式负载均衡
  11. 联想ThinkPad E15 2021款 酷睿版怎么样?测评值得买吗?
  12. java获取oracle自增_Oracle自增列创建方法
  13. 3个快速将Word转换成PDF的方法
  14. 实验四:app内页面跳转
  15. Java基础之MySQL数据库与JDBC
  16. moses gcc link failed
  17. 成立一年超100家客户,卫瓴科技如何用“客户成功”驱动SaaS企业内外增长? | CEO面对面
  18. php如何连接数据库 甲骨文,Windows PHP/phpStudy 连接 甲骨文Oracle 数据库 oci8
  19. 这5个PNG免抠素材网站,可商用,赶紧马住了
  20. 并查集的一些个人观点 以及克鲁斯卡尔算法的详解

热门文章

  1. 2019\Province_C_C++_B\试题F-特别数的和
  2. 你不会真的以为自己懂得计算机网络吧?
  3. 10.2.4 练习题
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1054:三角形判断
  5. Python之Django框架开发博客
  6. 【STM32】FreeRTOS任务相关API
  7. 【Linux】一步一步学Linux——more命令(39)
  8. 【Linux系统编程】Linux 线程浅析
  9. 【Android】Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法
  10. 华农计算机科学宿舍在哪个区,新生指南Ⅵ | 住在华农·看看我们第二个家