【Spring框架全系列】如何创建一个SpringBoot项目

news2024/12/29 9:56:54

🌇哈喽,大家好,我是小浪。前几篇博客我们已经介绍了什么是Spring,以及如何创建一个Spring项目,OK,那么单单掌握Spring是完全不够的,Spring的家族体系十分强大,我们还需要深入学习,以便于我们后续达到能独立做项目的水平。今天我们来学习SpringBoot。🏜

📲目录

一、什么是SpringBoot

二、SpringBoot的优点

三、Spring Boot 项⽬创建

一、安装Spring插件

二、新建一个SpringBoot项目

四、启动SpringBoot项目


一、什么是SpringBoot

🔦简单来说:Spring 的诞⽣是为了简化 Java 程序的开发的,而 Spring Boot 的诞⽣是为了简化 Spring 程序开发的。
⏲️Spring Boot 翻译过来就是 Spring 脚⼿架,那么什么是脚⼿架呢?拿盖房子来举例:
e2d1dd6b8f5d4a7cbface0737bbe209e.jpeg

🪙有了以上的脚手架,这使我们盖房子的效率大大提高,非常的方便,快捷;

二、SpringBoot的优点

1、快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
2、内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。

3、快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。

4、可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
5、⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。

三、Spring Boot 项⽬创建

准备工作:注意,要想创建SpringBoot项目,这里我们首先需要安装一个插件叫做Spring Boot Helper,但是高版本的Spring Boot Helper是要收费的,所以我们选择idea的版本为2020、2021的都可以免费使用Spring Boot Helper(社区版idea);如果你安装的是专业版的idea,或者是破解之后的idea,那么不需要安装Spring Boot Helper这个插件;

Spring Boot Helper插件免费的对应idea版本;

c5dfb8d728b241568382a0bfa0191c58.png

🧭🧭那么接下来博主将演示使用idea社区版来创建一个SpringBoot项目(idea2021.3.3);

一、安装Spring插件

1、打开idea,右上角File,点击Settings,然后点击Plugins,在搜索框里面搜索Spring boot;

f126f52803e94d8a80795841b27e5d8c.png

2、找到第一个Spring Boot Helper,点击右侧的install,安装完成之后可以看到这个插件会变成另外一个名字Spring Initializr and Assistant,看到这个名字说明我们的插件安装完毕了;

8138998120e24b048cf1c4d7c0a11708.png

3、spring插件安装完成之后我们就可以开始创建springboot项目了;

二、新建一个SpringBoot项目

1、依然是File->new->Preoject;

c49ba7e87429454d8592c5b59e975709.png

2、点过去之后我们会发现左边栏出现了一个Spring Initializer,这就是我们刚才安装的Spring Helper插件,选择它来创建我们的SpringBoot项目; 注意这里一定要选择JDK1.8,点击next;

62fe164dd52e4b8db9aaa824f0eb2f33.png

3、到这个页面注意我们需要修改的是一下两个地方;

8c006689bb2a474e8804c439bbc4da14.png

4、将项目类型修改为maven,这里我们依然是通过maven的方式来创建springboot项目,Java version选择8,因为我们个人电脑idea配置的都是Java 8,所以要选择对应的版本,选错了会影响后续的操作,然后点击next;

fe9d2fd1527848398fccc62bf2c05b9e.png

5、注意这个页面用来选择springboot的版本,还有我们需要添加的依赖,注意箭头标记的这几个地方;

c77fbc9919a54265ab64dc7c83237d68.png

6、由于SpringBoot3版本要求JDK最低是17,所以这里我们选择SpringBoot2开头的版本即可;后面带括号英文字母的是次稳定版本,也可以选择,但是我们为了稳妥起见,选择2.7.11就好(不同的idea版本这里SpringBoot的版本也不一致,大版本是2即可);

d55d075932d740e7942472dce95fbf4a.png

7、同时需要选择所需要的依赖Lombok、Spring Boot DevTools;点开左侧的Web,选择里面的Spring Web,所有选择完成之后对应以下图片,点击next;

fdef9e2abff548dba3c64c3b3790de8b.png

8、设置项目名称,项目存放的路径,点击Finish;

1d1d69544588401ebf1d5f3c54f44131.png

四、启动SpringBoot项目

1、第一次建SpringBoot项目,idea加载非常慢,所以咱们需要耐心等待一下,加载完成之后应该跟以下图片中的目录结构一样;

2dfc9ef88b5c453abcd1ff93ae797920.png

很多小伙伴的包结构可能是com.example.demo都聚在一行了,那么如何设置成和我的结构一样嘞

点击这个齿轮,然后依次按照箭头指示,把Compact Middle Packages前面对钩给去掉就可以了;

1b58cacbcc084228b3f06d45d0142e82.png

2、我们发现我们的.java文件都是灰色的,前面有个橙色的标识,这是咱们的项目还未初始化好,当.java文件变成蓝色的,我们的项目就初始化好了,那么如何让该文件初始化好呢?

step1:首先我们右键项目名,点击这个add Framework Support,添加maven支持;

69cbcfad690f4f228f4aef6f26002d2f.png

step2:选中maven,点击ok;

984f53cec85043c389cb3d4660522904.png

step3:等待idea加载完毕之后,我们的文件就变成蓝色的了,说明项目已经初始化完毕了;

a3ba5a3783cc4999802526df2bdd6f13.png

SpringBoot项目目录介绍:

610b096c69834f1c99556835adde89ac.png

3、删除多余的目录

以下的目录都是多余的文件,我们在创建项目的时候用不到,就可以删去,对我们开发没有影响;

按住ctrl,然后点击鼠标左键即可全部选中删除;

6fff39a72ce64474891bd10e82055030.png

4、启动类DemoApplication:注意我们所有的Springboot程序都要通过该启动类来执行,相当于我们坐高铁过安检一样,是必须要走的一步;

2acb1428b1a44be889e93c2dfd32bfbb.png

5、OK,那么接下来我们创建一个类来演示一下如何执行一个SpringBoot项目;

在和启动类同一目录下,新建一个类TestController,注意我们添加的注解;

package com.example.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//返回的是数据,而非页面
public class TestController {

    @RequestMapping("/hai")//url路由注册
    public String sayHi(String name){

        if(!StringUtils.hasLength(name)){
            name = "SpringBoot";
        }
        return "hello"+ name;
    }
}

6、OK,然后运行我们的启动类DemoApplication;

542582df27544a14b6f2d937407d93a3.png

7、idea里面会输出以下内容,代表我们的springboot项目成功运行了,可以看到对应的窗口;

在浏览器中输入 localhost:8080/hai 注意跟我们在类中设置的url路由要一致;

06c21f981a7744a6bdef58dced8443bb.png

8、点击回车,即可看到浏览器输出的内容和我们的代码执行预期结果是一致的;

804ed1fb62024376ae20bda8ae3dff8e.png

 🌄OK,以上就是本篇博客所有的内容了,本专栏在持续更新Spring框架全家桶的知识,都是免费阅读的,欢迎小伙伴们动动勤劳的小手点点订阅,方便学习的时候不迷路丫,感谢支持!!💡💡

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

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

相关文章

力扣---LeetCode160. 相交链表(代码详解+流程图)

文章目录 前言160. 相交链表链接:思路:方法一:暴力求解法1.1 时间复杂度:O(M*N)1.2 代码: 方法二:双指针2.1 时间复杂度:O(N)2.2 代码:2. 3流程图: 注意:补充…

13. Transformer(下)

P33 Transformer(下) 视频链接 P33 Transformer(下) 1. Decoder: Autoregressive(AT) Decoder原理: Encoder vs Decoder: Masked: how to stop: 2. Decoder: Non-autoregressive(…

网络基础——网络的发展史

作者简介:一名计算机萌新、前来进行学习VUE,让我们一起进步吧。 座右铭:低头赶路,敬事如仪 个人主页:我叫于豆豆吖的主页 目录 前言 一.网络发展史 1. ARPANET 2.TCP/IP协议 3. 互联网 4.Web浏览器 5.搜索引擎 6. 社交网…

如果你访问了某个网站,又不想让人知道怎么办?

问大家一个问题:如果你访问了某个网站,又不想让人知道怎么办? 你可能会说,把浏览器浏览历史记录清除,或者直接用无痕模式。 如果你只能想到这一层,那只能说图young! 这么说吧,理论…

操作系统原理 —— 调度的概念、层次(十一)

调度的基本概念 在操作系统中的调度,是指操作系统从就序队列中选择一个作业,或者进程进行执行。 举个例子: 比如我们去银行窗口排队,排队的人就相当于就绪列表,窗口就相当于是操作系统,窗口需要服务排队…

npm的使用和命令

3.0 npm 什么是npm 是node管理包的工具 3.1 初始化包管理描述文件 package.json npm init // 会询问你每次的选项 或 npm init -y // 不询问你选项,默认就是确定 首先建立一个文件在路径里面全选写cmd 然后打开环境 在里面写npm init -y回车 就会在你原来空的文…

编写用户帮助/操作手册指南

背景: 用户操作手册是一份指导用户使用产品或服务的重要手册。 一个新系统,需要写用户操作手册,该从何下笔?本篇是一篇教你编写用户帮助/操作手册的指南~ 首先,先来看一个反例 : 这个是我入职…

移动通信(17)预编码

源于某篇学位论文 利用预编码技术可以有效抑制大规模天线传输中的干扰,提高链路的峰值速率。大规模天线技术在提升性能的同时也存在很大的干扰问题。多天线传输中带来的多径干扰不可忽视。通常在接收端抑制干扰算法通常实现起来较为复杂,若采用预编码技…

安装Node.js和cnpm

一、安装Node.js 1.下载 Node.js官网下载 根据自身系统下载对应的安装包(我这里为Windows10 64位,故选择下载第一个安装包) 2、然后点击安装,选择自己要安装的路径,此处我选择的是:D:\Program Files\node…

中级软件设计师备考---UML

目录 面向对象的基础概念面向对象的设计原则UML的各类图设计模式对比分类 面向对象的基础概念 【只介绍一些我个人不太熟悉的概念】 继承和泛化:泛化和继承可以理解为是一个逆过程:泛化就是有子类抽象出一个父类,而继承就是由父类具体化一个…

程序员崩溃的N个瞬间

说到程序员,在外界眼里,他们是掌控代码的大神,他们是改变世界的王者。其实程序员的工作不容易,不信,就来看看程序员崩溃的各种瞬间—— 01、公司实习生找bug 02、在调试时,将断点设置在错误的位置 03、当我…

eventMesh 本地搭建记录

官方文档: Apache EventMesh (Incubating) | Apache EventMesh (作为整体了解 可以先看看架构) 按照官方文档需要搭建服务 eventmesh-store 文档推荐的是 rocketmq docker pull apache/rocketmq:4.9.4 部署rmq 的过程 1.nameServer docker run -d -p 9876:9876 -v pwd/d…

NECCS|全国大学生英语竞赛C类|词汇和语法|语法题|时态 非谓语动词 |19:00~20:15|完形填空·词性转化

14:35~14:45 15:45~16:2019:00~20:15 http://t.csdn.cn/XbsUy 目录 (一)时态 7. 将来进行时 8. 过去将来进行时 9. 现在完成时 10. 过去完成时​编辑 11. 将来完成时 12. 现在完成时 13. 过去完成进行时 (…

David Silver Lecture 4: Model-Free Prediction

1 Introduction 任务:第三章使用动态规划方法,解决known的MDP问题,这章通过model free prediction对一个unknown的MDP估计他的value function。下一章通过Model free control的方法针对一个unknown的MDP optimise value function。 2 Monte…

密码学【java】初探究加密方式之消息摘要

文章目录 一 消息摘要1.1 消息摘要的特点1.2 消息摘要常见算法1.3 数字摘要的运用举例:1.4 字符串数字摘要演示1.5 其他数字摘要算法演示1.6 获取文件消息摘要 一 消息摘要 消息摘要(Message Digest)又称为数字摘要(Digital Digest)它是一个…

Feign组件的使用及开发中使用方式

在微服务的服务集群中服务与服务之间需要调用暴露的服务.那么就需要在服务内部发送http请求, 我们可以使用较为老的HttpClient实现,也可以使用SpringCloud提供的RestTemplate类调用对应的方法来发送对应的请求。 说明: 现在有两个微服务一个是…

java反序列化cc3链分析

前言 休息完五一,继续卷,原本想结束cc链的,但是发现cc3链好像用的方法不太一样,感觉也是可以记录下来,这里感觉cc3链有一些像cc1链的变种,就像是给你一些绕过的操作 在说一句,白日梦组长永远的神…

使用开源的zip.cpp和unzip.cpp实现压缩包的创建与解压

目录 1、使用场景 2、压缩包的创建 3、压缩包的解压 4、CloseZipZ和CloseZipU两接口的区别 5、开源zip.cpp和unzip.cpp文件的下载 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/…

低代码平台组件间事件交互

事件的分类 我们主要依托于事件来进行组件间的交互。为了满足组件与组件、组件与系统、组件与服务端的交互,我们大致可以将事件分为三个类别: 组件方法:每个组件都会暴露出一些方法供其他组件进行调用。例如表格组件,我们可以暴…

Ubuntu18.04 设置 root 用户登录

Ubuntu18.04 设置 root 用户登录 1 设置 root 密码2 设置 root 登录 1 设置 root 密码 Ubuntu 安装后,root 用户默认是被锁定的,无法登录。Ubuntu 默认的 root 密码是动态随机的,我们的系统每次启动后都是不一样的,那么要使用 ro…