博客主页:准Java全栈开发工程师

00年出生,即将进入职场闯荡,目标赚钱,可能会有人觉得我格局小、觉得俗,但不得不承认这个世界已经不再是以一条线来分割的平面,而是围绕财富旋转的球面,成为有钱人不是为了去掌控球体的转向,而是当有人恶意掌控时,努力保护好家人和自己。

一、SpringBoot 简介

  • SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。
  • 我们在学习 Spring 的时候说过 Spring 框架是为了简化开发的,而 SpringBoot 是为了简化 Spring 开发的,由此可见,使用 SpringBoot 开发将会更加的方便简捷。
  • 那 SpringBoot 是如何简化开发的呢?我们以一个入门案例来说明。

二、SpringBoot 入门案例

1、创建项目

  • 我使用的 IDEA 版本偏低,可能页面会有些许不同,但是大体应该还是一致的。

  • 使用 Spring Initializr 需要保证在联网的情况,但是有时在联网时也无法成功创建,可以使用下述方式,将网址改为阿里云的,我就是第一种方式怎么也创建不了,改用阿里云之后就可以了。



  • 因为我们是进行 Web 开发,所以我勾选了 Spring Web。之后还可以勾选一些比较使用的开发工具等。

  • 为项目命名。

  • 点击 Finish 创建成功后,项目结构如下图所示。

2、编写 Controller 类

  • 先抛开实体类、数据访问层和业务逻辑层等内容,我们直接简单测试一下表现层。
@RestController
@RequestMapping("users")
public class UserController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println("id ==> " + id);
return "{'msg':'qdxorigin'}";
}
}
  • 上述代码采用了 REST 风格开发,简单模拟根据 ID 查询信息。

3、启动项目

  • 能够明显看到 Spring 的图像,且在加载信息中看到了和 tomcat 相关的内容,但是我们并没有配置 tomcat 啊?这就是 SpringBoot 更方便的一点,它内部自己给我们配置了 tomcat ,我们之后都无需再自己配置 tomcat 了。

4、使用 Postman 测试

  • 与此同时,控制台也获取到了 ID 值。

三、SpringBoot VS Spring?

  • 通过练习入门案例,我们发现了,SpringBoot 内部会给我们配置 tomcat ,我们无需再自己配置。
  • 除此之外,在之前的 SSM 开发中,我们会自己在 pom.xml 文件中手动配置许多依赖,但是在 SpringBoot 中我们并没有修改 pom.xml 文件中的任何内容,仅仅在创建项目的时候勾选了 Spring Web,使得 SpringBoot 将我们需要的依赖配置好了。
  • 在整合 SSM 时,我们还手动书写了许多的配置类,但是 SpringBoot 中这些内容统统都不需要我们自己配置了。
  • SpringBoot 还有许多非常便捷的地方,目前较为明显的是上述三个优化。

四、在官网中构建工程

  • 进入官网,官网地址。划到后面,找到下图,点击 Spring Initializr (有没有感觉很熟悉,在 IDEA 创建项目时是不是也是这个)。

  • 看到下图,有没有感觉和我们使用 IDEA 创建项目时遇到的非常相似啊。其实使用 IDEA 工具创建也会走这一套流程。

  • 在右边区域添加依赖,搜索选择添加的依赖。

  • 同样会在下面呈现所选择的依赖。

  • 全部都完成之后,点击 GENERATE 创建项目。

  • 创建完成之后会生成一个压缩包,我们可以解压之后,导入 IDEA 中开发使用。

  • 通过浏览压缩包中内容会发现和我们通过 IDEA 创建的项目结构是一模一样的。

五、打包 SpringBoot 项目

  • 在 pom.xml 文件中,提供有如下插件,所以我们可以使用 Maven 的 package 指令打包,完成后会在 target 目录下生成对应的 jar 包。







  • 此时,在 target 文件夹中已经能够看到 jar 已经打包好了,如果前端人员需要,可以将打包好的 jar 包拷贝给他,他可以直接运行调试自己的前端代码。
  • 前端人员拿到 jar 包后,在该位置输入 cmd 进入我们常说的小黑框。

  • 输入 java -jar 命令。

  • 有没有感觉到一些熟悉,没错,这和我们在 IDEA 中呈现的效果是一样的。
  • 此时我们就可以访问项目的所有资源了。

六、SpringBoot 是如何实现简化开发的?

  • 前面说过,SpringBoot 是可以简化 Spring 应用开发的,通过入门案例我们也能够明显的感觉到使用 SpringBoot 框架开发的便利,那么它是如何简化开发的呢?
  • 这其中就不免需要介绍两个非常重要的内容。

1、启动依赖

  • 通过查看 pom.xml 文件中的代码,我们不难发现有许多命名为 starter 的依赖。

  • 这些依赖中又引用了许多其他 starter 依赖。

  • 这也就告诉我们,在 SpringBoot 项目中,如果想要使用某个技术,直接导入相应的 starter 依赖就可以了,配置所需要的内容在该 starter 依赖中都有,给我们节省了很大一部分精力。

2、引导类

  • 当工程创建完成后,都会自动提供一个引导类,该类是程序启动的入口,当我们想要自动程序时,直接运行 main 方法即可。
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
  • 正式因为有了这些启动依赖和引导类,我们就能够专注于业务代码,而无需对一些配置工作而耗费精力,简化开发。

七、切换 Web 服务器

  • 通常情况下,我们都会使用 tomcat 作为项目的服务器,但是如果某天我们想要切换自己的服务器,该如何操作呢?
  • 在此以切换为 jetty 服务器为例简单演示下如何操作。
  • 第一步,我们需要将 starter 依赖中自动配置的 tomcat 服务器排除掉,使其失效。
        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
  • 此时我们再启动工程,会发现打印的信息中找不到和 tomcat 相关的了。

  • 第二步,导入 jetty 依赖。
        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
  • 此时,再次启动项目,看到了 jetty 相关打印信息,说明已经成功切换了服务器。

以上就是文章的全部内容啦,诸佬如果有任何建议都可以提哦。

创作不易,如果觉得对您有帮助的话,欢迎关注点赞收藏哦。

【SpringBoot】快速入门的更多相关文章

  1. SpringData 基于SpringBoot快速入门

    SpringData 基于SpringBoot快速入门 本章通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现.这样可以从实战 ...

  2. SPRING-BOOT系列之SpringBoot快速入门

    今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...

  3. SpringBoot快速入门01--环境搭建

    SpringBoot快速入门--环境搭建 1.创建web工程 1.1 创建新的工程. 1.2  选择maven工程,点击下一步. 1.3 填写groupid(maven的项目名称)和artifacti ...

  4. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  5. Springboot快速入门篇,图文并茂

    Springboot快速入门篇,图文并茂 文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star!搜索关注微信公众号 [码出Offer] 领取各种学习资料! image-20 ...

  6. SpringBoot快速入门(实战篇一)

    SpringBoot快速入门(一) 一SpringBoot简介 1.spring开发经历的阶段 Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 ...

  7. SpringBoot快速入门(一)

    本文内容 SpringBoot概述 SpringBoot快速入门 SpringBoot起步依赖原理分析 SpringBoot配置 SpringBoot整合其他框架 1.SpringBoot概述 1.1 ...

  8. Java开发学习(三十五)----SpringBoot快速入门及起步依赖解析

    一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 使用了 Spring 框架后已经简化了我 ...

  9. springboot快速入门(四)——数据库操作

    一.Spring-Data-Jpa的引入 先给出官方文档:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/ IBM ...

  10. springboot快速入门02--Controller编写和测试

    02springboot快速入门--Controller编写和测试 1.新建一个HelloController import org.springframework.boot.SpringApplic ...

随机推荐

  1. 在容器使用stress指令进行负载压测

    安装stressstress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户 在容器中安装docker容器压测工具 stress #先安装一些基础工具 ...

  2. Hyperledger Fabric定制联盟链网络工程实践

    总体来看,网络上成体系的可用的 Fabric 教程极少--不是直接在 Fabric 官网复制内容大谈基础理论就是在描述一个几乎无法复现的项目实践,以至于学习 Fabric 的效率极低,印象最深刻的就是 ...

  3. Protoc安装

    系统:linux 记住,千万别混乱版本,一般protoc可执行文件在/usr/local/bin/或/usr/bin/下 个人这里使用3.13版本示例,下面两部分命令可以写入shell脚本,记住执行要 ...

  4. Java之万年历

    @(文章目录) 二.Java之万年历 2.1 要求 输入年份: 输入月份: 输出某年某月的日历. 2.2 思路 实现从控制台接收年和月,判断是否是闰年(判断是否是闰年:能被4整除但不能被100整除:或 ...

  5. Codeforeces 13B

    计算几何二维基础

  6. Blazor Bootstrap 组件库语音组件介绍

    Speech 语音识别与合成 通过麦克风语音采集转换为文字(STT),或者通过文字通过语音朗读出来(TTS) 本组件依赖于 BootstrapBlazor.AzureSpeech,使用本组件时需要引用 ...

  7. 删库到跑路?还得看这篇Redis数据库持久化与企业容灾备份恢复实战指南

    本章目录 0x00 数据持久化 1.RDB 方式 2.AOF 方式 如何抉择 RDB OR AOF? 0x01 备份容灾 一.备份 1.手动备份redis数据库 2.迁移Redis指定db-数据库 3 ...

  8. 搜索与图论①-深度优先搜索(DFS)

    深度优先搜索(DFS) 例题一(指数型枚举) 把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序. 输入格式 一个整数 n. 输出格式 按照从小到大的顺序输出所有方案,每行 1 个. ...

  9. python 处理网络帧时,CRC算法中整数按位取反运算(~)得到负数的规避方法

    计算机中的符号数有三种表示方法,即原码.反码和补码.三种表示方法均有符号位和数值位两部分,符号位都是用0表示"正",用1表示"负". 正数的原码,反码,补码都是 ...

  10. come on! 基于LinkedHashMap实现LRU缓存

    /** * @Description 基于LinkedHashMap实现一个基于'LRU最近最少使用'算法的缓存,并且最多存MAX个值 * @Author afei * @date:2021/4/25 ...