SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

在本文中,我们将演示如何新建一个基本的 Spring Boot 项目。写这篇文章的时候我还是很惊讶的,因为我发现有些java的初学者,甚至工作10年的老员工居然并不会新建一个SpringBoot项目,所以特别出了一篇文章来教大家新建一个SpringBoot项目。

什么是SpringBoot项目?
Spring Boot 是一个用于简化 Spring 应用程序开发的框架,它提供了快速构建、开箱即用的特性,使得开发人员可以更快速地搭建和部署应用程序。现在很多企业都用的是SpringBoot项目,但是在工作过程中,一般都是领导已经搭建好了,但是作为Java初学者的我们,也需要知道如何新建一个SpringBoot项目

你需要准备的东西:
一套安装好的Java环境:Windows安装Java环境(OracleJDK)
一套安装好的Maven:Windows安装Maven(图文解说详细版)
一个安装好的GIT
一套安装好的IDEA

第一种方式:通过脚手架网站新建

目前比较好用的网站有:
阿里云的项目初始化平台,提供了更多与阿里云相关的功能和服务:start.aliyun.com
spring官方的初始化平台,提供了Spring项目的初始化配置,包括Gradle和Maven项目的生成:start.spring.io

start.spring.io

这个网站进来是这样的

在这里插入图片描述

在 https://start.spring.io/ 上,我们可以看到以下选项,每个选项的含义如下:

  1. Project
    Project: 选择项目类型,可以是 Maven 项目或 Gradle 项目。
    Language: 选择项目使用的编程语言,如 Java、Kotlin 或 Groovy。
  2. Spring Boot
    Spring Boot: 选择要使用的 Spring Boot 版本。
    Project Metadata: 输入项目的元数据,包括 Group、Artifact、Name、Description、Package Name 和 Java 版本。
  3. Project Metadata
    Group: 项目的组织标识符。
    Artifact: 项目的唯一标识符。
    Name: 项目的名称。
    Description: 项目的描述。
    Package Name: 项目的包名。
    Packaging: 选择项目的打包方式,如 Jar 或 War。
    Java: 选择项目使用的 Java 版本。
  4. Dependencies
    Dependencies: 选择要添加到项目中的依赖项,如 Spring Web、Spring Data JPA、Spring Security 等。
    Search for dependencies: 搜索要添加的依赖项

这里要注意的是java版本最低只能选择17的版本了,因为在2022年第四季度发布的Spring6框架,要求Java最低版本为JDK17,
而 spring 6 将会重构内部架构,同时把最低java版本要求改为17,另外 spring boot 3 也将要求最低 java 版本为 17

所以这里看到的SpringBoot最低版本也是3开头的版本号了,其实这也是spring官方为了推动SpringBoot的良苦用心(极不方便)。
这里博主给大家配置好了一个默认的web环境加mysql能使用的configuration:
web环境加mysql

最下面有两个选项,一个是预览文件

在这里插入图片描述

一个是导出为压缩文件

在这里插入图片描述

下载完成后我们解压,导入到idea中即可(用idea打开)

请添加图片描述

打开之后我们选择pom文件单击右键选择添加为maven项目即可

在这里插入图片描述

如果我们安装了maven的话,可以只留下src目录和pom.xml文件即可,其他的全部可以删掉

start.aliyun.com

那如果我们非要使用java8版本或者11版本呢?上面的网站就已经使用不了了,这个时候我们进入阿里云的应用脚手架,这个网站进来是这样的

在这里插入图片描述

这个里面和上面的内容几乎是一比一复刻的,所以大家按照上面的来就行
这里也给大家选择好了一个web加mysql的configuration:
configuration

大家下载下来直接运行启动类即可,控制台出现如下信息则代表运行成功:

在这里插入图片描述

第二种方式:用IDEA新建

在IDEA的新建项目中选择Spring lnitializr

在这里插入图片描述

在ideal中也是集成了上面两个网站的创建方式。他相当于把上面脚手架网站的页面给搬入到ideal中来。例如我们这个选择spring官方的脚手架spring boot的网站。我们就会发现里面的内容和刚刚我们第一种方式spring官方网站里面的内容是一模一样的。在这个里面呢,我们也可以选择自己的网站,例如我们也可以选择阿里巴巴的springboot脚手架启动网站。

在这里插入图片描述

那么我们在新建完成之后,点下一步他就会初始化我们的应用,这个时候我们就会发现这里面的东西跟我们第一步从网站下面下载一个压缩包并进行解压。然后用idea打开这个里面的内容其实是一样的。

在这里插入图片描述

第三种方式:设置parent为SpringBoot

除了上面两种方式呢,我们也可以通过设置maven 的Parent 为spring boot。来设置这个项目为spring boot的项目。其实spring boot它的本质也是一个main。那么我们新建一个空的maven项目,我们再把spring boot的包给引进来。那么其实他也就是一个资源部的项目了。

第一步:新建一个maven项目

在这里插入图片描述

当我们新建了一个maven项目的时候,我们就会发现项目的目录结构是这样的,它里面什么东西都没有。

在这里插入图片描述

第二步:设置parent

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/> <!-- lookup parent from repository --></parent>

在这里插入图片描述

第三步,引入一个starter

根据你的项目需求来引入一个starter,因为我们的项目是外部项目,那么我们就引入这个starter。

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

在这里插入图片描述

这里值得注意的是我们随便引入一个starter即可,例如博主自己开发的jar包:

  <dependency>--><groupId>io.gitee.wangfugui-ma</groupId>--><artifactId>aliyun-oss-spring-boot-starter</artifactId>--><version>1.0.0</version>--></dependency>-->

它里面的原理是我们引入的jar包它里面引入了spring boot的jar包,所以相当于我们的项目也引入了spring boot的jar包。

在这里插入图片描述

第四步,编写启动类

package com.masiyi;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @Author:掉头发的王富贵* @Package:com.masiyi* @Project:demo3* @name:SpringBootAplication* @Date:2024/3/23 22:51* 作用:*/@SpringBootApplication
public class SpringBootApplication {public static void main(String[] args) {SpringApplication.run(SpringBootApplication.class, args);}
}

在这里插入图片描述

这个时候只需要把你的类名根据博主发的模板。为自己的启动类的类名。例如你的叫TestApplication,那么这个启动类就应该长这样


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @Author:掉头发的王富贵* @Package:com.masiyi* @Project:demo3* @name:SpringBootAplication* @Date:2024/3/23 22:51* 作用:*/@SpringBootApplication
public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}
}

第四种方式,直接引入springBoot

第一种:直接添加spring-boot-starter

在这里插入图片描述

这个和第三种方式的有一个区别,就是我们没有通过parent。去引入boot,而是我们直接把的架包引入到我们的系统当中。我们只要引入了以下的jar包,我们的系统就变成一个springboot项目了。

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.7.12</version></dependency></dependencies>

第二种:设置spring-boot-dependencies

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.7.12</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

还有另外一种变形的方式就是我们可以在dependencyManagement中设置spring-boot-dependencies,这样也是可以的

在这里插入图片描述

我们已经通过了四种方式设置我们的项目为SpringBoot的项目。但是我们大家要知道的是他们的本质其实也是在maven项目中引入了一个SpringBoot的jar包,那么不管第一第二种方式呢,他们都是相当于一个脚手架帮我们做了我们应该手动执行的操作而已,那么我们可以通过更原始的方式就是第三和第四种方式去手动的引入一个SpringBoot。希望通过这篇教程JAVA的初学者应该了解到怎么去创建一个spring boot的项目。谢谢大家的观看。

在这里插入图片描述

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

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

相关文章

数据挖掘-数据预处理

来自&#x1f96c;&#x1f436;程序员 Truraly | 田园 的博客&#xff0c;最新文章首发于&#xff1a;田园幻想乡 | 原文链接 | github &#xff08;欢迎关注&#xff09; 文章目录 3.3.1 数据的中心趋势平均数和加权平均数众数&#xff0c;中位数和均值描述数据的离散程度 &a…

VSCode | 修改编辑器注释的颜色

1 打开VsCode的设置进入settings.json 2 添加如下代码 "editor.tokenColorCustomizations": {"comments": "#17e917"},3 保存即可生效

Linux源码阅读笔记14-IO体系结构与访问设备

IO体系结构 与外设通信通常称为输入输出&#xff0c;一般缩写为I/O。在实现外设IO的时候&#xff0c;内核必须处理三个可能出现的问题&#xff1a; 必须根据具体的设备类型和模型&#xff0c;使用各种方法对硬件寻址。内核必须向用户应用程序和系统工具提供访问各种设备的方法…

hugging face 使用教程———快速入门

概述 本篇存在的意义是快速介绍hugging face使用&#xff0c;梳理主要部件&#xff0c;梳理易混淆概念。原因是&#xff1a;目前hugging face的使用&#xff0c;官方放在了3个地方&#xff08;参考链接部分&#xff09;&#xff1a;使用文档、NLP教程、Transformers git的readm…

Vue3+Element Plus 实现table表格中input的验证

实现效果 html部分 <template><div class"table"><el-form ref"tableFormRef" :model"form"><el-table :data"form.detailList"><el-table-column type"selection" width"55" align&…

基于springboot+vue+uniapp的养老院系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

repo 工具安装和使用教程(windows+gitee)

repo是什么 官方的定义&#xff1a;Repo是谷歌用python脚本写的调用git的一个脚本&#xff0c;可以实现管理多个git库。 Android的源代码使用Repo 命令行工具来管理多个git仓库&#xff0c;大概有百多个。要想克隆和管理百多个 Git 仓库&#xff0c;不是一件简单的事情。Repo 命…

LoRaWAN网络中的chirpstack

目录 一、chirpstack介绍 二、网关与chirpstack之间的通信 三、NS与AS之间的通信 1、Protobuf 2、gRPC 一、chirpstack介绍 ChirpStack 是一个开源的 LoRaWAN 网络服务器&#xff0c;可用于 设置私有或公共 LoRaWAN 网络。ChirpStack 提供了一个 Web 界面 用于管理网关、设…

HBuilder X中配置vue-cli项目和UI库

目录 一.前端项目结构 二.在HBuilder X中搭建vue-cli项目 1. 安装node.js前端环境 2. HBuilder X创建一个vue-cli项目 3. vue-cli项目结构 4. 如何运行前端项目 5. 创建组件 6. 组件路由(页面跳转) 6.1 创建router目录 6.2 使用路由 6.3 在main.js中配置路由 6.4 路…

【IoTDB 线上小课 05】时序数据文件 TsFile 三问“解密”!

【IoTDB 视频小课】持续更新&#xff01;第五期来啦~ 关于 IoTDB&#xff0c;关于物联网&#xff0c;关于时序数据库&#xff0c;关于开源... 一个问题重点&#xff0c;3-5 分钟详细展开&#xff0c;为大家清晰解惑&#xff1a; IoTDB 的 TsFile 科普&#xff01; 了解了时序数…

系统移植(三)u-boot移植 ① 相关概念

文章目录 一、u-boot概念&#xff08;一&#xff09;概念&#xff08;二&#xff09;获取u-boot源码1.从u-boot官网获取2. 从 STM官网3. 开发板厂商获取 &#xff08;三&#xff09;分析u-boot源码1. u-boot源码的目录结构2. 获取make的帮助信息3. 分析README文件 &#xff08;…

讨逆猴子剪切板,浏览器复制失败?

讨逆猴子剪切板&#xff0c;复制失败&#xff1f; 问题&#xff1a;本地开发情况下可以直接复制&#xff0c;公网就不行了…触发了安全机制。 const link 内容;navigator.clipboard.writeText(link);报错&#xff1a; 解决方案&#xff1a; if (navigator.clipboard &&…

使用代理IP进行本地SEO优化:如何吸引附近的客户?

在今天竞争激烈的互联网时代&#xff0c;如何利用代理IP进行本地SEO优化并吸引附近的客户已经成为许多企业和网站面临的关键挑战。本文将探讨使用代理IP的策略和技巧&#xff0c;以帮助公司提高在本地市场的可见性和吸引力&#xff0c;从而扩大本地客户群体。 1. 代理IP在本地…

Windosw下Visual Studio2022编译FFmpeg(支持x264、x265、fdk-acc)

FFmpeg 7.0 版本移除了 6.0 之前已弃用的 API&#xff0c;无法向下兼容。所以编译的版本选择FFmpeg 6.1.1。 一、安装Visual Studio2022 可参考另外一篇文章&#xff1a;Windows安装Visual Studio2022 QT5.15开发环境_qt5.15.2 vs2022-CSDN博客 二、安装MSYS2 下载地址&…

lua 游戏架构 之 游戏 AI (四)ai_autofight_find_target

定义一个名为 ai_autofight_find_target 的类&#xff0c;继承自 ai_base 类。 lua 游戏架构 之 游戏 AI &#xff08;一&#xff09;ai_base-CSDN博客文章浏览阅读237次。定义了一套接口和属性&#xff0c;可以基于这个基础类派生出具有特定行为的AI组件。例如&#xff0c;可…

大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Docker+consul容器服务的更新与发现

1、Consul概述 &#xff08;1&#xff09;什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的&#xff0c;不保障高可用性&#xff0c;也不考虑服务的压力承载&#xff0c;服务之间调用单纯的通过接口访问。直到后来出现了多个节点…

Spark实时(三):Structured Streaming入门案例

文章目录 Structured Streaming入门案例 一、Scala代码如下 二、Java 代码如下 三、以上代码注意点如下 Structured Streaming入门案例 我们使用Structured Streaming来监控socket数据统计WordCount。这里我们使用Spark版本为3.4.3版本&#xff0c;首先在Maven pom文件中导…

在 Spring Boot 中使用 Filters 实现请求过滤和预处理

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 什么是过滤器 过滤器&#xff08;Filter&#xff09;是一种在Web应用中用于拦截和处理HTTP请求和响应的对象。 在Java Web开发中&#xff0c;过滤器是实现特定功能&#xff0c;如认证、日志记录和字符编码处…

X-AnyLabeling标注软件使用方法

第一步 下载 官方X-AnyLabeling下载地址 github&#xff1a;X-AnyLabeling 第二步 配置环境 使用conda创建新的虚拟环境 conda create -n xanylabel python3.8进入环境 conda activate xanylabel进入X-AnyLabeling文件夹内&#xff0c;运行下面内容 依赖文件系统环境运行环…