SpringBoot概述及项目的创建使用

文章目录

  • 一. Spring Boot概述
    • 1. 什么是Spring Boot?
    • 2. Spring Boot的优点
  • 二. Spring Boot项目的创建
    • 1. 使用IDEA创建
      • 1.1. 准备工作
      • 1.2. 创建运行Spring Boot项目
      • 1.3. 进行Web交互
      • 1.4. 目录工程介绍
      • 1.5. 项目快速添加依赖
      • 1.6. 防止配置文件乱码所需的配置
      • 1.7. SpringBoot热部署
    • 2. 使用网页创建SpringBoot项目

一. Spring Boot概述

1. 什么是Spring Boot?

Spring 是为了简化 Java 程序开发而诞生的,而 Spring Boot 是为了简化 Spring 项目的开发而诞生的。

Spring Boot 直接翻译过来就是 Spring 脚手架的意思,平时我们我们也能常见到在建造房屋等建筑时脚手架这种工具是很常见的,建筑行业的脚⼿架的作用是砌筑砖墙,浇筑混凝⼟,⽅便墙⾯抹灰,装饰和粉刷的,也就是说使用脚手架可以提高建房的效率。

img

而我们这里也一样,Spring 脚手架,它就能够提高开发 Spring 项目的效率。

2. Spring Boot的优点

  • 快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。
  • 内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。
  • 快速部署项目,无需外部容器即可启动并运行项目。
  • 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。
  • 支持更多的监控的指标,可以更好的了解项目的运行情况。

二. Spring Boot项目的创建

1. 使用IDEA创建

1.1. 准备工作

首先看你的 IDEA 是社区版还是专业版,专业版是无需额外安转插件的,直接创建 SpringBoot 项目即可。

而社区版 IDEA 中没有内置 Spring Boot 项目创建的插件,此时就需要下载第三方插件Spring Boot Helper来创建Spring Boot项目。

插件安装步骤:
1️⃣第一步,从IDEA找到Setting设置。
img
2️⃣第二步,找到插件选项,搜索安装后重新启动 IDEA 即可。
img
对于专业版的 IDEA,本身内置的插件这个插件了,社区版安装好插件后和专业版就大同小异了,看下面的介绍,以社区版为例。

1.2. 创建运行Spring Boot项目

1️⃣第一步,新建项目,选择你常用的 jdk 版本,现在稳定的有 8,11,17 三个版本,我这里用的是 jdk1.8。
img
2️⃣第二步,选择 Java 版本(一定要选择本地存在的 jdk 版本)和项目类型,然后next。
img

3️⃣第三步,选择 Spring Boot 版本,要注意使用 jdk1.8 的话只能选择 版本为2.x.x的,后面没有字母的是稳定版。
img

4️⃣第四步,添加需要的依赖,看选项选择即可,然后 next。

img
img
5️⃣第五步,设置项目名称与路径,设置好后点击 Finish 即可。
img

6️⃣第六步,添加 Maven 工具,社区版打开项目后,右侧没有 Maven 需要我们手动添加,这是因为社区版 IDEA 不能识别该项目为 Maven 项目,专业版没有这个问题。

img

img

要注意 IDEA 社区版是有一些 Bug 的,在 pom.xml 文件中,我们要选择的 springboot 版本是2.7.14,但它加的是2.7.14.RELEASE,我们把后面的RELEASE删除即可,专业版是没有这个问题的。

img
7️⃣第七步,刷新等待项目加载完成,直到 SpringBoot 项目的启动类DemoApplication图标变蓝为止。

imgimg

第一次加载时间可能有点久,如果加载失败,先看 Maven 配置的是不是国内源,试着重新加载几次,实在不行,再将 SpringBoot 的源成换国内的阿里源试一试。
img
所谓启动类就是带有@SpringBootApplication注解的那个类。
img
点击运行按钮,显示下图中的结果就表示 SpringBoot 项目创建成功了。
img

8️⃣第八步,创建完 SpringBoot 项目之后我们还可以删除一些没有用的目录,不影响使用。

img

1.3. 进行Web交互

我们写一个程序,当浏览器访问路径时,在网页上输出网页上显示Hello,SpringBoot!,如果能够成功显示到浏览器的话才表示我们创建项目创建完全没有问题。

要注意在 SpringBoot 项目中,我们创建的类必须在启动类同级目录或者子级目录下,这样才能被被框架识别扫描到,因为在 Spring Boot 项目中是不需要配置扫描路径的,只需要将类创建在指定目录下即可,这也是 SpringBoot 项目的一个特点,约定大于配置(相较于 Spring 配置较少,在 Spring 中需要配置 Bean 的扫描路径的,而 Spring Boot 中不需要,放到约定的路径下即可)。

package com.example.springboot.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class TestController {@ResponseBody   // 不加默认返回一个页面, 这是历史问题, 返回一个非静态页面数据,可以加到类上也可以加到方法上@RequestMapping("/hello")public static String sayHi() {return "Hello, SpringBoot!";}
}

启动程序。

img
🍂访问结果:
img

我们再尝试将TestController移动到非启动类目录下,重新运行程序,访问路径。

img

🍂访问结果:

此时我们访问时,就报 404 了,这就说明此时 Spring Boot 项⽬没有将 TestController 对象注⼊到容器中。
img

1.4. 目录工程介绍

Spring Boot 项⽬有两个主要的⽬录:

①src/main/java 为 Java 源代码。

②src/main/resources 为静态资源或配置⽂件:

  • /static:静态资源⽂件夹;
  • /templates:模版资源⽂件夹。

img

1.5. 项目快速添加依赖

1️⃣第一步,我们需要一个插件EditStarters,在 IDEA 插件设置中,下载安装,然后重启IDEA。
img

2️⃣第二步,找到pom.xml文件,右键选择Generate
img
3️⃣第三步,选择刚刚下载的插件那个选项。
img
4️⃣第四步,设置数据源,用默认就行。
img
5️⃣第五步,添加/修改依赖。
img

1.6. 防止配置文件乱码所需的配置

打开Setting,找到如下图所在目录,将所有的编码格式改为utf8
img

上面这一步只是设置了当前项目,我们还需要针对新项目做出同样的设置。
img
设置改好之后,需要删除配置文件重新创建,就不会出现乱码了。

1.7. SpringBoot热部署

1️⃣第一步,在pom.xml中添加spring-boot-devtools依赖。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional>
</dependency>

2️⃣第二步,打开Setting,开启项目自动编译。

img

3️⃣第三步,在Setting中开启项目运行中进行热部署(其实就是自动重启 IDEA)。

img

4️⃣第四步,再针对新项目完成上面第二步设置即可,之所以不设置第三步是因为Advanced Settings选项只有在File->Settings里面才有,只能在当前项目设置,而在File->New Projects Setup->Settings for New Projects这个设置页面里是没有的,所以需要我们在新项目中自己手动再去设置。
img

2. 使用网页创建SpringBoot项目

1️⃣第一步,打开SpringBoot项目创建网站:https://start.spring.io/

img
2️⃣第二步,配置项目,按照下图配置即可,与在IDEA创建及其类似。
img
3️⃣第三步,选择必要的依赖。
img

img
4️⃣第四步,点击创建按钮(点击一次即可,不然会下载多个 SpringBoot 的zip包)。
img
然后就会生成一个压缩包,自动下载到本地。
img
5️⃣第五步,解压后通过 IDEA 打开即可。
img

此时项目也是可以运行的。
img

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

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

相关文章

Docker实战专栏简介

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【iMessage苹果推?IM推送】群控脚本当Apple APNS推送服务器从您的应用程序接吸收注册消息时,它将为您回到一串devicetoken

推荐内容IMESSGAE相关 作者✈️IMEAE推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAE推荐内容3.日历推 *** …

Rust软件外包开发语言的特点

Rust 是一种系统级编程语言&#xff0c;强调性能、安全性和并发性的编程语言&#xff0c;适用于广泛的应用领域&#xff0c;特别是那些需要高度可靠性和高性能的场景。下面和大家分享 Rust 语言的一些主要特点以及适用的场合&#xff0c;希望对大家有所帮助。北京木奇移动技术有…

人工智能学习框架—飞桨Paddle人工智能

1.人工智能框架 机器学习的三要素&#xff1a;模型、学习策略、优化算法。 当我们用机器学习来解决一些模式识别任务时&#xff0c;一般的流程包含以下几个步骤&#xff1a; 1.1.浅层学习和深度学习 浅层学习(Shallow Learning)&#xff1a;不涉及特征学习&#xff0c;其特征…

Vue3 setup中使用$refs

在 Vue 3 中的 Composition API 中&#xff0c;$refs 并不直接可用于 setup 函数。这是因为 $refs 是 Vue 2 的实例属性&#xff0c;而在 Vue 3 中&#xff0c;setup 函数是与模板实例分离的&#xff0c;不再使用实例属性。 实际工作中确实有需求&#xff0c;在setup 函数使用…

迪瑞克斯拉算法

迪锐克斯拉算法 简单来说就是在有向图中&#xff0c;给定一个图中具体的出发点&#xff0c;从这个点出发能够到达的所有的点&#xff0c;每个点的最短距离是多少。到不了的点&#xff0c;距离则是正无穷。有向&#xff0c;无负权重&#xff0c;可以有环。 所以说&#xff0c;迪…

流媒体服务-传输延时(SEI插帧)

什么是延时 很多小伙伴认为&#xff0c;当推流端和拉流端显示的时间不一致&#xff0c;即为延时。 其实这种看法是比较片面的&#xff0c;不同的播放器&#xff0c;对同一路流进行测试&#xff0c;可能会得到不同的结果。 一般来说&#xff0c;延时为以下几个部分的累加组成 …

【Android】解决Lint found fatal errors while assembling a release target

报错信息&#xff1a; Android在debug模式下打包没有问题&#xff0c;但是在打包release版本时出现一下问题&#xff1a; 结果图 原因 我项目的原因是因为把正式、测试地址放到代码里了&#xff0c;忘记选中正式环境的地址&#xff0c;导致打正式包有问题&#xff1b;大家如果…

复合 类型

字符串和切片 切片 切片的作用是允许你引用集合中部分连续的元素序列&#xff0c;而不是引用整个集合。 例如&#xff1a; let s String::from("hello world");let hello &s[0..5]; // 切片 [0,5) 等效于&s[..5] let world &s[6..11]; // 切片…

gitee上传一个本地项目到一个空仓库

gitee上传一个本地项目到一个空仓库 引入 比如&#xff0c;你现在本地下载了一个半成品的框架&#xff0c;现在想要把这个本地项目放到gitee的仓库上&#xff0c;这时就需要我们来做到把这个本地项目上传到gitee上了。 具体步骤 1. 登录码云 地址&#xff1a;https://gite…

【数据结构】树和二叉树的概念及结构

1.树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#…

Spring Boot 中的 AOP,到底是 JDK 动态代理还是 Cglib 动态代理

大家都知道&#xff0c;AOP 底层是动态代理&#xff0c;而 Java 中的动态代理有两种实现方式&#xff1a; 基于 JDK 的动态代理 基于 Cglib 的动态代理 这两者最大的区别在于基于 JDK 的动态代理需要被代理的对象有接口&#xff0c;而基于 Cglib 的动态代理并不需要被代理对…

list

目录 迭代器 介绍 种类 本质 介绍 模拟实现 注意点 代码 迭代器 介绍 在C中&#xff0c;迭代器&#xff08;Iterators&#xff09;是一种用于遍历容器&#xff08;如数组、vector、list等&#xff09;中元素的工具 无论容器的具体实现细节如何,访问容器中的元素的方…

在ubuntu中将dict.txt导入到数据库sqlite3

将dict.txt导入到数据库 #include <head.h> #include <sqlite3.h> int do_insert(int i,char *str,sqlite3 *db); int main(int argc, const char *argv[]) {//创建泵打开一个数据库sqlite3 *db NULL;if(sqlite3_open("./my.db",&db) ! SQLITE_OK){…

【TI-CCS笔记】工程编译配置 bin文件的编译和生成 各种架构的Post-build配置汇总

【TI-CCS笔记】工程编译配置 bin文件的编译和生成 各种架构的Post-build配置汇总 TI编译器分类 在CCS按照目录下 有个名为${CG_TOOL_ROOT}的目录 其下就是当前工程的编译器 存放目录为&#xff1a; C:\ti\ccs1240\ccs\tools\compiler按类型分为五种&#xff1a; ti-cgt-arm…

2023年排行前五的大规模语言模型(LLM)

2023年排行前五的大规模语言模型(LLM) 截至2023年&#xff0c;人工智能正在风靡全球。它已经成为热门的讨论话题&#xff0c;吸引了数百万人的关注&#xff0c;不仅限于技术专家和研究人员&#xff0c;还包括来自不同背景的个人。人们对人工智能热情高涨的原因之一是其在人类多…

CS5263替代停产IT6561连接DP转HDMI音视频转换器ASL 集睿致远CS5263设计电路原理图

ASL集睿致远CS5263是一款DP1.4到HDMI2.0b转换器芯片&#xff0c;设计用于将DP1.4源连接到HDMI2.0b接收器。 CS5263功能特性&#xff1a; DP接口包括4条主通道、辅助通道和HPD信号。接收器支持每通道5.4Gbps&#xff08;HBR2&#xff09;数据速率。DP接收机结合了HDCP1.4和HDCP…

NVIDIA Omniverse与GPT-4结合生成3D内容

全球各行业对 3D 世界和虚拟环境的需求呈指数级增长。3D 工作流程是工业数字化的核心&#xff0c;开发实时模拟来测试和验证自动驾驶车辆和机器人&#xff0c;操作数字孪生来优化工业制造&#xff0c;并为科学发现铺平新的道路。 如今&#xff0c;3D 设计和世界构建仍然是高度…

2023国赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

个保新标 | 《信息安全技术 敏感个人信息处理安全要求》(征求意见稿)发布

8 月 9 日&#xff0c;全国信息安全标准化技术委员会公开发布关于国家标准《信息安全技术 敏感个人信息处理安全要求》&#xff08;征求意见稿&#xff09;&#xff08;以下简称《标准》&#xff09;的通知&#xff0c;面向社会广泛征求意见。 《标准》的制定背景是为支撑《个人…