Spring Boot 快速入门(绝对经典)

news2024/9/28 15:20:45

目录

1、理论概述

1.1、什么是Spring Boot?

1.2、Spring Boot的特点

1.3、开发环境

2、实战——创建和配置项目

2.1、Spring Boot项目创建的两种方式

2.1.1、方法一:通过网站构建项目

2.1.2、使用Spring Initializr创建(推荐)

2.2、Spring Boot目录介绍

3、项目运行

3.1.实现页面交互打印功能(简单的Hello World)

3.1.1、功能解释

3.1.2、运行Spring Boot

3.1.3、执行效果

3.2、注意事项

3.2.1、约定大于配置

4.总结


1、理论概述


1.1、什么是Spring Boot?

         Spring Boot 是基于 Spring 设计的一个全新的框架,其目的是用来简化 Spring 的应用、初始搭建、开发的整个过程(如果说 Spring 是手动档汽车,那么 Spring Boot 就是自动挡汽车)。Spring Boot就是一个整合了很多可插拔组件的框架,内嵌工具(例如Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。

1.2、Spring Boot的特点

  • Spring Boot 提供了启动添加依赖的功能,可以快速搭建框架。
  • 内置容器,省去了配置Tomcat等Web容器的繁琐,可以直接运行和部署。
  • Spring Boot的核心理念:约定大于配置,约定了某种规范,可以不用配置,直接进行开发,例如模型和表名一致就可以不用配置...
  • 完全摒弃繁琐的XML,使用注解和配置进行开发
  • ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。

1.3、开发环境

Spring Boot 2.7.8

JDK 1.8

IDE:IntelliJ IDEA 2021.3.2

注意:Spring Boot 2.x 要求Java8及以上版本,不再支持Java6、Java7.

2、实战——创建和配置项目


2.1、Spring Boot项目创建的两种方式

2.1.1、方法一:通过网站构建项目

a)访问网址:https://start.spring.io/

b)对你的项目进行配置,如下图:

最后点击Generate Project按钮生成项目。

c)解压刚刚下载好的文件,点击IDEA File => New => Project from Existing Sources… => 选择你解压项目文件夹目录 => 点击Ok => 选择Import project from external model => 选中Maven => 一路点击Next直到项目导入成功。
 

2.1.2、使用Spring Initializr创建(推荐)

a)如果你是使用的IDEA社区版,需要安装以下插件(不是社区版可以跳过此步骤)

所需插件:Spring Boot Helper(如下图)

注意:此插件在IDEA社区版2022.1.x之前都免费,IDEA社区版2022.2.x之后开始收费,所以IDEA社区版版本的选择,大家自行选择。

这个插件就是用来构建 Spring Boot 框架的,之后,你在创建一个项目的时候可以看到这样一个选项(就是通过来创建Spring Boot框架),如下图:

b)接下来就是创建Spring-Boot项目的步骤: 

最后一路Next即可,最终目录结构如下:

如果你得到了上图这个目录结构,说明你的项目已经创建好了,但是还没有初始化,因此还需要以下步骤:

然后点击OK,接着就是一个,漫长的等待过程,当你的项目出现了下图变化,才说明你的Spring-Boot项目已经创建并初始化完成:

 

2.2、Spring Boot目录介绍

3、项目运行


3.1.实现页面交互打印功能(简单的Hello World)

在demo目录下创建一个类(名字自己随便起,这里是为了演示)如下图:

代码如下:

import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller //当前类为控制器
@ResponseBody //返回的是数据,而非页面
//@RestController 是以上两种两个注解合并
public class TestController {

    @RequestMapping("/hi") // url 路由注册
    public String sayHi(String name) {
        //判空处理
        if(!StringUtils.hasLength(name)) {
            name = "张三";
        }
        return "你好:" + name;
    }

}

3.1.1、功能解释

1.我们需要给类TestController设置@RestController注解,@RestController是@Controller和@ResponseBody的集合(@controller表示当前类的控制器,@ResponseBody表示返回的是数据,而非页面) 如果只是使用@RestController注解,无法返回jsp和html,这里只是为了便于演示;

2.标识访问方法注解@RequestMapping,这样我们才能访问到对应的方法,上述代码中映射的方法就是sayHi方法。

3.StringUtils.hasLength是一个判空处理,检查当前name的值是否为null或者空字符串。

3.1.2、运行Spring Boot

先找到Spring Boot启动类(@SpringBootApplication注解下的类),运行启动类中的main方法即可。

3.1.3、执行效果

a)如果程序出现下图,标识Spring-Boot项目已经运行起来了,并且如果程序保持没有停止,说明程序正常运行~

b)从打印的日志信息中可以看出,默认端口号是8080,如下:

c)接着,打开你的浏览器,输入127.0.0.1:8080/hi 或者 localhost:8080/hi 访问你的sayHi方法:

你也可以输入一段 query string 表示name,例如 localhost:8080/hi?name="世界",如下:

3.2、注意事项

3.2.1、约定大于配置

Spring Boot 项⽬有一个最大的特点:约定⼤于配置。

就是说我们创建的包或类需要写在java/com/example/demo的目录或者子目录下(默认是这样,但也可以自己配置),否则否则无法将对象注入到容器中!

类似于Spring项目中的扫描Bean的路径一样,如下图:

 

3.2.2、错误演示

如果将我们写的类移动到其他包下(不在demo的目录或者子目录下),例如下图:

重新启动项⽬,访问 localhost:8080/hi就会出现如下错误:

404表示你输入的路径错误,实际上是因为你写 TestController 类,没有注入到容器当中。

4.总结


1.几个重要的面试问题

  • 什么是Spring Boot?
  • 为什么要使用Spring Boot?(对比Spring的优点是什么?)

2.Spring Boot的开发工具和版本

3.Spring Boot项目的创建和使用

如果感觉感觉本文对你有帮助,不妨~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/339545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10个SEO 写作的必读小技巧!包你读完写更好创作

我们都知道写作是需要技巧的,目的是为了让读者有兴趣阅读,所以标题跟内容架构都需要清晰的思路。同样的,撰写SEO部落格文章也需要技巧,但拥有的不仅是传统写文章的技巧而已,而需要将Google的排名因素考虑进去。换句话说…

使用VueBarcode结合vueEasyPrint打印条形码标签

目标: 生成标签并实现打印功能 学习步骤: 1、了解 VueBarcode 2、了解 VueEasyPrint 3、VueBarcode 实践 4、VueEasyPrint 实践 5、VueBarcode VueEasyPrint 合体 一、了解 VueBarcode 点击传送至官网 原文介绍: JsBarcode是一个用JavaScr…

电子学会2020年6月青少年软件编程(图形化)等级考试试卷(四级)答案解析

青少年软件编程(Scratch)等级考试试卷(四级A卷) 分数:100.00 题数:30 一、单选题(共15题,每题2分,共30分) 1. 执行下图程序后,“花名…

Paper——Diffusion Model前向过程和反向过程详解

文章目录Diffusion过程解析前向过程公式详解每一步增加噪声的求解从起始状态到最终状态的公式反向过程损失函数总结公式Diffusion过程解析 前向和后向相互独立,前向过程使用马尔科夫链实现,反向过程采用神经网络进行预测。 前向过程 输入一个原始图片&…

二叉树的四种遍历方式(二)

接上文《二叉树的四种遍历方式(一)》(https://blog.csdn.net/helloworldchina/article/details/128895188),在本文讲述一下第四种遍历方式,即按层次遍历二叉树。 一 讲解 1 先序遍历二叉树, 见…

【Redis】Redis高可用之Redis Cluster集群模式详解(Redis专栏启动)

📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公…

nodejs+vue地铁站自动售票系统-火车票售票系统vscode

地铁站自动售票系统主要包括个人中心、地铁线路管理、站点管理、购票信息管理、乘坐管理、用户信息管理等多个模块。它使用的是前端技术:nodejsvueelementui 前后端通讯一般都是采取标准的JSON格式来交互。前端技术:nodejsvueelementui,视图层其实质就是…

MWORKS--系统建模与仿真

MWORKS--系统建模与仿真1 系统定义特征2 系统研究2.1 特点与原则2.2 方法百度百科归纳同元杠归纳3 系统建模与仿真3.1 系统、模型、仿真的关系3.2 系统建模4 建模方法4.1 方法4.2 一般流程4.3 目的5 仿真方法5.1 方法5.2 流程参考1 系统定义 系统是由相互作用相互依赖的若干组…

pip离线安装windows版torch

文章目录前言conda创建虚拟环境安装torchtorch官网在线安装离线手动安装测试是否安装成功后记前言 学习的时候遇到几个机器学习相关的项目,由于不同的项目之间用到的依赖库不太一样,于是想利用conda为不同的项目创建不同的环境方便管理和运行&#xff0…

01- 机器学习经典流程 (中国人寿保费项目) (项目一)

删除特征: data data.drop([region, sex], axis1)特征数据调整: data.apply( ) # 体重指数,离散化转换,体重两种情况:标准、肥胖 def convert(df,bmi):df[bmi] fat if df[bmi] > bmi else standardreturn df data data.apply(convert, …

Hadoop技术浅析

一、什么是HadoopHadoop是一个适合大数据存储和计算的分布式框架Hadoop广义狭义之分狭义上Hadoop指Hadoop框架广义上随着大数据技术的发展,Hadoop也发展成了一个生态圈,包含:Sqoop:Sqoop是一款开源的工具,主要用于在Ha…

洛谷2月普及组(月赛)

🌼小宇(治愈版) - 刘大拿 - 单曲 - 网易云音乐 OI赛制且难度对标蓝桥杯省赛(😥真难,第三题做了几百年,第四题只敢骗骗分) 花了10块钱🙃 买官网的思路,结果…

linux004之 vi和vim编辑器

vi、vim编辑器简介: 是linux中的文本编辑器,用来在linux系统中查看或编辑文本文件的命令, 相当于windows文本编辑器。 vi和vim的区别, vim是增强版, 功能相比vi是增强了。功能都查不多,用哪个都行&#xff…

数据库高并发和高可用方案

依旧主要参考沈剑大佬的多篇博文,以及数位网友的优秀分享,文末是完整参考。 1、高可用方案(HA,High Availability) 缓存是通过双写和双读主备、或者利用缓存的集群数据同步,故障自动转移来实现的 数据库的读是通过读写分离(MHA&am…

06-PS中的四种蒙版

Photoshop中的蒙版就是遮罩的意思,主要作用就是将其所在的图层,把不同的明暗度转化成相应的透明度。黑色为完全透明,灰色为半透明,白色为完全不透明。添加蒙版有便于灵活修改,不影响图层原貌。PS蒙版有四类&#xff1a…

【状态估计】基于二进制粒子群优化 (BPSO) 求解最佳 PMU优化配置研究【IEEE30、39、57、118节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Mybatis与微服务注册

目录 一,Springboot整合MybatisPlus 创建商品微服务子模块 二,SpringBoot整合Freeamarker 三、SpringBoot整合微服务 &gateway&nginx 整合微服务之商品服务zmall-product 创建并配置网关gateway服务 安装配置SwitchHosts 安装配置Windo…

【大数据hive】hive 函数使用详解

一、前言 在任何一种编程语言中,函数可以说是必不可少的,像mysql、oracle中,提供了很多内置函数,或者通过自定义函数的方式进行定制化使用,而hive作为一门数据分析软件,随着版本的不断更新迭代&#xff0c…

代码随想录第58天(动态规划):● 392.判断子序列 ● 115.不同的子序列

一、判断子序列 题目描述: 思路和想法: 这道题目还是最长公共子序列的拓展,只是这里进行删除的一定是t字符串,当不相等时,dp[i][j] dp[i][j - 1];其余基本一致。当最长公共子序列个数等s.size()时&#x…

Leetcode力扣秋招刷题路-0050

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出&am…