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的项目。这样的方式可以实现自动注入AutoConfiguration生效。

第一步:新建一个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,因为我们的项目是web项目,那么我们就引入这个starter。

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

在这里插入图片描述

这里值得注意的是我们随便引入一个starter即可,因为一般的Starter都引入了springboot的包,例如博主自己开发的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.xdnf.cn/news/34764.html

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

相关文章

分代ZGC介绍

背景 在JDK 11中作为实验性功能推出的ZGC&#xff08;JEP 333: ZGC: A Scalable Low-Latency Garbage Collector &#xff09;&#xff0c;经过10个版本的迭代&#xff0c;终于在24年9月GA的JDK 23中将分代模式调整为默认模式&#xff08;JEP 474: ZGC: Generational Mode by …

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源&#xff08;如日志文件、消息队列、网络数据、文件系统、数据库等&#xff09;收集数据&#xff0c;并将…

解决IDEA的easycode插件生成的mapper.xml文件字段之间逗号丢失

问题 easycode插件生成的mapper.xml文件字段之间逗号丢失&#xff0c;如图 解决办法 将easycode(在settings里面的othersettings)设置里面的Template的mapper.xml.vm和Global Config的mybatisSupport.vm的所有$velocityHasNext换成$foreach.hasNext Template的mapper.xml.vm(…

策略模式实战 - 猜拳游戏

**可以整体的替换一套算法&#xff0c;这就是策略模式。**这样对于同一个问题&#xff0c;可以有多种解决方案——算法实现的时候&#xff0c;可以通过策略模式来非常方便的进行算法的整体替换&#xff0c;而各种算法是独立封装好的&#xff0c;不用修改其内部逻辑。 具体的实…

漫画之家Spring Boot:漫画资源的个性化推荐

4 系统设计 4.1系统设计主要功能 通过市场调研及咨询研究&#xff0c;了解了用户及管理者的使用需求&#xff0c;于是制定了管理员和用户等模块。功能结构图如下所示&#xff1a; 图4-1系统功能结构图 4.2数据库设计 4.2.1数据库设计规范 数据可设计要遵循职责分离原则&#…

C++:AVL树

文章目录 一、AVL树的概念二、AVL树的实现1、AVL树的节点2、 AVL的插入的过程3、平衡因子的更新 三、旋转1、右单旋2、左单旋3、右左双旋4、右左双旋 四、AVL树平衡检测五、AVL树查找 一、AVL树的概念 二、AVL树的实现 1、AVL树的节点 key,vaule的二叉搜索树&#xff0c;需要…

Vscode插件 :用于生成文件头部注释和函数注释

最近找到了一个好用的vscode生成注释的插件----koroFileHeader 1.在拓展中搜索&#xff0c;并且安装 2.找到setting.json 设置模板 点击ctrlp(windows and linus),commandp(mac) 输入 > Open Settings 点击第一个选项 并且用以下代码进行覆盖 // 头部注释 "file…

知从科技闪耀汽车智能底盘大会:共探软件安全新篇章

在汽车科技蓬勃发展的浪潮中&#xff0c;智能底盘技术正成为引领行业变革的关键力量。11月27日-28日&#xff0c;盖世汽车 2024 第四届汽车智能底盘大会盛大召开&#xff0c;上海知从科技有限公司受邀出席此次盛会&#xff0c;与众多汽车领域的精英齐聚一堂&#xff0c;共话智能…

LabVIEW密码保护与反编译的安全性分析

在LabVIEW中&#xff0c;密码保护是一种常见的源代码保护手段&#xff0c;但其安全性并不高&#xff0c;尤其是在面对专业反编译工具时。理论上&#xff0c;所有软件的反编译都是可能的&#xff0c;尽管反编译不一定恢复完全的源代码&#xff0c;但足以提取程序的核心功能和算法…

ABAP 类与对象 EXCEPTIONS与RAISE

文章目录 ABAP 类与对象 EXCEPTIONS与RAISE系统示例代码执行结果RAISE的系统文档测试 ABAP 类与对象 EXCEPTIONS与RAISE 系统示例 代码 CLASS cls DEFINITION.PUBLIC SECTION.CLASS-METHODS meth EXCEPTIONS exc. ENDCLASS.CLASS cls IMPLEMENTATION.METHOD meth....RAISE ex…

接第二部分 Advanced Learning Algorithms

接第二部分 Advanced Learning Algorithms 文章目录 接第二部分 Advanced Learning AlgorithmsMachine learning development process(机器学习开发的迭代)Iterative loop of ML development错误分析(error analysis)添加数据(Adding data)迁移学习&#xff1a;使用其他任务中的…

AI新动向:豆包文生图升级,文心一言领先市场

在今日的AI资讯中&#xff0c;我们关注到了几个重要的行业动态&#xff0c;其中包括字节跳动AI助手豆包的功能升级&#xff0c;以及百度文心一言在生成式AI市场的领先地位。 字节跳动旗下的智能AI助手豆包近期对其文生图能力进行了显著提升&#xff0c;用户现在可以通过一键操…

力扣54.螺旋矩阵

题目描述 题目链接54. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5]示例 2&#xff1a;…

【第 1 章 初识 C 语言】1.10 - 1.11 本书的组织结构、本书的约定

目录 1.10 本书的组织结构 1.11 本书约定 1.11.1 字体 1.11.2 程序输出 特殊的击键 本书使用的系统 读者的系统 1.11.3 特殊元素 1.10 本书的组织结构 本书采用多种方式编排内容&#xff0c;其中最直接的方法是介绍 A 主题的所有内容、介绍 B 主题的所有内容&#xff0…

# 06_Python基础到实战一飞冲天(三)-python面向对象(六)--类属性和类方法和单例

06_Python基础到实战一飞冲天&#xff08;三&#xff09;-python面向对象&#xff08;六&#xff09;–类属性和类方法和单例 一、类属性-05-使用对象名类属性赋值语句会创建实例属性 1、使用对象名访问类属性的问题注意 如果使用 对象.类属性 值 赋值语句&#xff0c;只会…

【目标跟踪】DUT Anti-UAV数据集详细介绍

DUT Anti-UAV数据集是大连理工大学的团队公开的数据集&#xff08;DUT是他们学校的简称&#xff09;&#xff0c;其中包括了两个子数据集&#xff1a;目标检测和目标跟踪&#xff08;也就是说&#xff0c;目标检测和目标跟踪都可以用这个数据集&#xff09;。该数据集为可见光模…

★ 数据结构 ★ 排序

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将和大家一起学习数据结构中的各种排序~ ​❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页&#xff1a;椎名澄嵐-CSDN博客 数据结构专栏&#xff1a;https://blog.csdn.net/2302_80328146/categ…

c语言基础三:运算符和表达式

一、常用的运算符分类 运算符类型 作用 算术运算符 用于处理四则运算 赋值运算符 用于将表达式的值赋给变量 比较运算符 用于表达式的比较&#xff0c;并返回一个真值或假值 逻辑运算符 用于根据表达式的值返回真值或假值 位运算符 用于处理数据的位运算 s…

如何通过金蝶云星空高效集成销售出库单

金蝶云星空数据集成案例分享&#xff1a;销售出库单-&#xff08;分销&京东&唯品&虚拟除外&#xff09;手表汇总 在企业信息化系统中&#xff0c;数据的高效流转和准确对接是业务运作的关键。本文将聚焦于一个具体的系统对接集成案例&#xff0c;即如何将金蝶云星…

【SKFramework框架核心模块】3-4、事件模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…