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://xiahunao.cn/news/3266946.html

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

相关文章

六、1 TIM输出比较、PWM

1、英文缩写 OC&#xff08;Output Compare&#xff09;输出比较 IC&#xff08;Input Capture&#xff09;输入捕获 CC&#xff08;Capture/Compare&#xff09;输入捕获和输出比较单元 CNT计数器 CCR&#xff08;Capture/Compare Register&#xff09;捕获/比较寄存器 …

家政项目小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;家政人员管理&#xff0c;家政服务管理&#xff0c;咨询信息管理&#xff0c;咨询服务管理&#xff0c;家政预约管理&#xff0c;留言板管理&#xff0c;系统管理 微信端账号功能…

如何查看Windows电脑密钥?Windows密钥一键获取

在数字时代&#xff0c;软件的安全性和授权问题日益受到重视。Windows操作系统&#xff0c;作为全球使用最广泛的电脑操作系统之一&#xff0c;其激活和授权机制对于确保软件的正版使用至关重要。Windows密钥&#xff0c;作为激活和验证操作系统正版性的关键&#xff0c;有时需…

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

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

便携式气象仪:科技赋能,让气象观测更智能

随着科技的快速发展&#xff0c;越来越多的领域受益于技术的进步。其中&#xff0c;气象观测领域也不例外。传统的气象观测设备虽然精确可靠&#xff0c;但往往体积庞大、携带不便&#xff0c;且需要专业人员进行操作和维护。而便携式气象仪的出现&#xff0c;则打破了这一局限…

如何解决ChromeDriver 126找不到chromedriver.exe问题

引言 在使用Selenium和ChromeDriver进行网页自动化时&#xff0c;ChromeDriver与Chrome浏览器版本不匹配的问题时有发生。最近&#xff0c;许多开发者在使用ChromeDriver 126时遇到了无法找到chromedriver.exe文件的错误。本文将介绍该问题的原因&#xff0c;并提供详细的解决…

Python爬虫技术 第13节 HTML和CSS选择器

在爬虫技术中&#xff0c;解析和提取网页数据是核心部分。HTML 和 CSS 选择器被广泛用于定位网页中的特定元素。下面将详细介绍这些选择器如何在 Python 中使用&#xff0c;特别是在使用像 Beautiful Soup 或 Scrapy 这样的库时。 HTML 选择器 HTML 选择器基于 HTML 元素的属性…

【微信小程序实战教程】之微信小程序 WXSS样式处理详解

WXSS样式处理 有过Web开发经验的开发者应该都了解CSS&#xff08;全称 Cascading Style Sheets&#xff09;是一种用于描述HTML或XML文档呈现的样式表语言。而WXSS&#xff08;全称 WeiXin Style Sheets&#xff09;是一套样式语言&#xff0c;用于描述WXML的组件样式&#xf…

CAS原理以及AtomicStampedRefernce

目录 CAS概念没有使用CAS之前使用CAS之后CAS介绍代码案例为什么CAS能保证原子性&#xff1f;1、Unsafe2、offset 偏移量3、变量value用volatile修饰4、自旋保持原子性5、底层汇编语言的具体执行 原子引用CAS与自旋锁实现一个自旋锁 CAS缺点及解决AtomicStampedRefernce CAS概念…

记录使用el-form的resetFields时遇到的表单数据回显失败的问题,去除nextTick解决

首先简单介绍一下resetFields的基础作用 element-plus官网el-form介绍 本案例中实现点击每行的编辑按钮时&#xff0c;弹出弹窗和表单 由于设置了表单校验&#xff0c;如图&#xff0c;表单内容不符合设定的校验规则时会有提示 如果仅仅这样就会出现问题&#xff0c;下次打…

海山数据库(He3DB)技术解析:海山Redis定时任务与持久化管控设计

文章目录 引言一、背景介绍二、具体实现1、多副本容灾功能2、主备切换后任务断点续做功能3、持久化管控编排功能 三、总结作者 引言 云Redis数据库服务是目前广泛应用的模式&#xff0c;其数据持久化方案是现在研究的热点内容&#xff0c;数据持久化操作主要由参数设置自动触发…

华为交换机Telnet配置

华为交换机Telnet配置 一、Telnet概述与作用 1、Telnet简介 Telnet&#xff08;Telnet协议&#xff09;是一种用于远程登录到计算机或网络设备的协议。它允许用户在本地计算机上通过网络连接到远程计算机或设备&#xff0c;并在远程计算机上执行命令和操作。Telnet协议最初是…

mysql特殊字符、生僻字存储设置

mysql utf-8模式下&#xff0c;分为ut8mb3,utf8mb4&#xff0c;mb4是支持特殊字符、emoji表情的&#xff0c;mb3是不支持的。 报错信息&#xff1a; 1### Error updating database. Cause: java.sql.SQLException: Incorrect string value: \xF0\xA8\x92\x82\xE6\x95... fo…

什么是公司自建企业邮箱?自建企业邮箱有什么用?

什么是公司自建企业邮箱&#xff1f;公司自建企业邮箱有什么用途&#xff1f;一是品牌统一&#xff1b;二是安全性增强&#xff1b;三是定制化功能&#xff1b;四是控制与灵活性等等。哪些企业适合自建企业邮箱呢&#xff1f;本篇文章将为您一一解释。 一、什么是公司自建企业…

Photos框架 - 自定义媒体选择器(UI列表)

引言Photos框架 - 自定义媒体资源选择器&#xff08;数据部分&#xff09;-CSDN博客 关于自定义媒体选择器上一篇博客我们已经介绍了使用Photos获取媒体资源数据和处理媒体资源数据&#xff0c;有了数据&#xff0c;UI的实现就比较灵活了&#xff0c;我就以上面的设计样式为例…

前端养成记-实现一个低配版简单版本的vue3表单自定义设计组件

简介&#xff1a; 通过使用了最新的vue3,vite2,TypeScript等主流技术开发&#xff0c;并配合使用vuedraggable 插件以及antd design vue 组件库实现低配版本的自定义表单设计组件&#xff1b; 项目地址&#xff1a;https://gitee.com/hejunqing/vue3-antdv-generator

直指谷歌?OpenAI将推出在线搜索工具“SearchGPT”

KlipC报道&#xff1a;OpenAI 也在经过一段时间的沉寂后&#xff0c;重新开始了密集的新品发布。当地时间7月25日&#xff0c;OpenAI进军搜索市场&#xff0c;宣布正在测试新的AI搜索工具SearchGPT。目前只向一小部分用户开放&#xff0c;从中获取反馈意见。 华尔街分析师表示…

Cuppa CMS v1.0 任意文件读取漏洞(CVE-2022-25578)

前言 春秋云镜靶场是一个专注于网络安全培训和实战演练的平台&#xff0c;旨在通过模拟真实的网络环境和攻击场景&#xff0c;提升用户的网络安全防护能力和实战技能。这个平台主要提供以下功能和特点&#xff1a; 实战演练&#xff1a; 提供各种网络安全攻防演练场景&#…

深层互联重磅发布,潮流开放式一对多无线导游讲解器

佩戴讲解器走进博物馆&#xff0c;已经是很多人的假期日常&#xff0c;但让我们越来越习以为常的无线讲解器&#xff0c;也许没那么简单。日前&#xff0c;深层互联全新推出IndoorLink潮流开放式导游讲解器&#xff0c;可开展主副双讲及同声传译&#xff0c;将不简单推向了一个…

【vue3|第18期】Vue-Router路由的三种传参方式

日期:2024年7月17日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^ 1.01365 = 37.7834;0.99365 = 0.0255 1.02365 = 1377.408…