SpringBoot快速上手

环境准备

IDEA版本:

社区版:2021.1-2022.1.4

专业版:无要求

Maven

官方对于Maven的描述:

Maven是一个项目管理工具,基于POM(Project Object Model,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告文档和项目管理工具软件.

人话:Maven是一个项目管理工具,通过pom.xml文件配置获取jar包,而不用手动去添加jar包.

1.项目构建

Maven是一个工具,和idea没有关系,只是idea把Maven集成了,上图出现的是Maven的命令.

2.依赖管理

每次添加完依赖之后,修改完POM文件之后,都需要点击这个刷新,让依赖下载并加载

这段代码(jar包的地址)我们称为:"坐标"

3.依赖传递

比如我们现在使用的这个MySQL的依赖,我们想让它发挥作用,其实这个包当中还依赖了其他的包

(有没有发现我的界面不一样了?我偷偷搞了个专业版(小声嘟囔))

就像这里我们根据依赖分析可以看到,MySQL这里还依赖了另外一个包.这种现象就是"依赖传递"

4.依赖排除

我们可以通过

<exclusions><exclusion>

给排除掉

这个时候我的这个项目当中就没有这个包了.

那什么时候需要用到依赖排除呢?

当上图两个jarC版本不同的时候.

使用依赖排除是,大多使用场景是为了"解决冲突".

这里如果是社区版就需要安装 Maven helper 插件

Maven概念

1.坐标

根据描述,可以找到jar包所在仓库的位置

2.仓库

1.中央仓库

Central Repository:

下面是常用的仓库代理网站

https://mvnrepository.com/

2.本地仓库

中央仓库中下载的jar包都会存到本地计算机的本地仓库中.

这就是本地仓库的地址.

该地址不要包含中文

如果你要修改该地址,那就需要把 .m2 文件夹下面的内容全部 copy 到你想要的路径下.(复制整个.m2文件夹)

由于它在我C盘拉的屎不多,所以这里我没有改.

3.私服

私服:私有服务器

通常具有一定的权限,某个企业或机构私有的,不愿意公开的.

私服是企业的,所以有一个jar包如果私服不存在,就去中央仓库去下载,一个组织中,只要有一个人下载,就可以了,其他人可以从私服中访问了.

配置这个setting就可以了.

4.配置国内源

在setting,xml中的<mirror>中添加这一段阿里云的镜像地址即可.

<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>阿⾥云公共仓库</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>

如果直接在 idea 的 setting 中进行配置,那么当前配置只在当前项目中生效,如何让以后得项目也生效呢?

需要在这里进行配置.

创建项目

如果你是专业版

这里就有

如果你是社区版

安装插件

注意这里不要点击直接下载,因为要收费.

去下载这个版本的,但是这个版本的插件要求你的idea是2021.1-2022.1.4,所以版本不对的,要重新下载一下idea

下载好之后是一个压缩包,不要解压,放在一个你想放的地方

安装好之后重启idea,你就可以在创建项目这里找到他了.

我们要在这里用Java8,但是如果你发现你的idea中没有Java8,那么只需要将上面这个地址改为阿里云的即可

https://start.aliyun.com

(此处借鉴其他博主的博客,原链接:Idea显示找不到Java8版本_java version没有显示java8-CSDN博客)

上述图片描述的是选择spring的版本以及依赖

社区版这里会有BUG,将后面RELEASE去掉然后重新加载maven即可

注意:这里的版本是会经常发生变化的,我们只要选择2这个大版本以及稳定的小版本即可.

会自动创建启动类,直接运行启动即可

绿色框住的只是示例,删除即可.

hello,word

Spring是一个框架,为了简化Java开发.

SpringBoot是基于Spring的一个框架,是为了简化Spring项目而诞生的.

项目特点

在POM文件这里我们发现,有好多依赖他没有版本标签

按住Ctrl鼠标移到上面我们发现出现了版本号

原因:在SpringBoot项目中,依赖也是有父类的.

这是它的父类的POM文件.

这样做的好处是,我们不需要管理依赖的版本了,SpringBoot会自动的帮我们管理

代码分析

这四个文件是没有用的,可以直接删除掉.

问题

如果出现了这个报错,是因为你选择的是SpringBoot3.X的版本,SpringBoot3.x的版本会自动的使用JDK17,我们一直使用的格式JDK8,那么怎么解决呢?

需要确认4个地方

第一个

第二个

第三个

第四个

将SpringBoot版本改为2.X的版本

包下载不下来

1.确认包是否真的存在

复制包名去maven仓库确认.

仓库地址:Central Repository:

去中央仓库时搜索的内容

去中央仓库代理网站是搜索

2.如果包存在,多下载几次

3.如果下载很多次都下载不下来

确认是否配置了国内源,看settings.xml是否配置国内源.

路径不能有中文

删除本地仓库的jar包,重新下载.

可能存在的一个问题是,上次下载时因为网络等问题,造成jar包下载了一半.

隔一段时间再下载.

目录介绍

idea:idea的配置文件

src:代码文件

Java:源代码

resources:资源目录,主要是配置相关的代码

static:静态文件

application.properties:SpringBoot项目的配置文件.

test:测试代码(注意:这里面放的是开发人员的测试代码,与测试人员无关)

target:编译代码(自动生成)

pom.xml:maven的配置文件

一些细节

两个Java的颜色是不一样的

那当你把这里的名字改了之后,就不想让它叫Java,就想改个名字,怎么办?

如果改了名字但是不进行上图操作,代码是运行不起来的.

但是一般我们不会去改的.

修改文件名:通过idea提供的方式来修改

好处:

1.idea会帮我们查找相关的代码

2.idea会进行提示

3.idea会帮我们把关联的文件名相关的代码全部修改.

观察启动日志

SpringBoot项目内置了Tomcat,端口号是8080,不需要再去配置了.

在SpringBoot项目中不需要content path,只需要servlet path(就是我们自己写的那个路径).

从日志中也可以看到content path是空的.

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

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

相关文章

GitHub Actions workflow最佳实践

使用 GitHub Actions Workflow 时&#xff0c;遵循最佳实践可以显著提升自动化效率、安全性和可维护性。以下是经过实践验证的核心最佳实践&#xff0c;涵盖配置设计、性能优化、安全防护等维度&#xff0c;并附具体示例&#xff1a; 一、工作流组织与触发优化 1. 拆分工作流&a…

JAVA读取项目内的文件或图片

一、读取resources下的文件或图片&#xff1b;文件或图片位置&#xff1a;代码&#xff1a;InputStream fis Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" xxx.jpg);二、读取项目内任意位置的文件或图片。文件或图片位置&…

Python如何将两个列表转化为一个字典

一、使用zip函数 zip函数是Python内置的一个强大工具&#xff0c;它可以将多个迭代器&#xff08;如列表、元组等&#xff09;“压缩”成一个迭代器&#xff0c;其中每个元素都是一个元组。使用zip函数将两个列表转换为字典是最常见的方法。 1、基本用法 keys [a, b, c] value…

Vue 3 useModel vs defineModel:选择正确的双向绑定方案

&#x1f4d6; 概述 useModel() 是 Vue 3.4 版本中引入的一个组合式 API 辅助函数&#xff0c;它是驱动 defineModel() 的底层实现。这个函数主要用于在非单文件组件中实现双向数据绑定&#xff0c;特别是在使用原始的 setup() 函数时。 ⚠️ 重要提示&#xff1a;如果使用 <…

数据库备份sql文件过大,phpAdmin无法执行Sql

数据库导出为sql文件&#xff0c;文件太大导致无法再Sql query执行&#xff0c;可使用命令行执行&#xff1a; windows系统&#xff1a; 1.切换到mysql 安装目录的bin目录下 cd C:\xampp\mysql\bin 2.执行备份sql还原mysql数据库 mysql -u root -p databasename < C://backu…

三格电子——ModbusTCP 转 Profinet 主站网关应用实例

型号&#xff1a;SG-TCP- Profinet(M)一、使用场景ModbusTCPClient 通过 ModbusTCP 控制 Profinet 接口设备&#xff0c; Profinet 接口设备接入DCS/工控机等。产品是ModbusTCP和Profinet(M)网关&#xff08;以下简称网关&#xff09;&#xff0c;使用数据映射 方式工作。 本产…

网址账号正确,密码错误返回的状态码是多少

问题网址账号正确&#xff0c;密码错误返回的状态码是多少我的回答当账号正确但密码错误时&#xff0c;服务器通常会返回401 Unauthorized状态码。这个状态码表示"未授权"&#xff0c;意味着客户端请求缺乏有效的身份验证凭据&#xff0c;或者提供的凭据无效。在实际…

JAVA核心基础篇-操作符

Java 操作符是用于操作变量和值的特殊符号&#xff0c;主要分为以下几类&#xff1a;1. 算术运算符用于执行基本的数学运算&#xff1a;&#xff1a;加法&#xff08;也可用于字符串拼接&#xff09;-&#xff1a;减法*&#xff1a;乘法/&#xff1a;除法&#xff08;整数相除取…

数据库字段类型深度解析:从关系型到 NoSQL 的全面指南

数据库字段类型深度解析&#xff1a;从关系型到 NoSQL 的全面指南 一、引言&#xff1a;数据库字段类型的重要性 在现代软件开发和数据管理中&#xff0c;数据库作为核心组件&#xff0c;其性能、可扩展性和数据完整性在很大程度上取决于字段类型的选择。作为专业的开发者和数据…

蓝牙aoa仓库管理系统功能介绍

在现代仓储物流的快节奏运作中&#xff0c;高效管理仓库人员的位置与行动轨迹&#xff0c;成为提升整体运营效率的关键。蓝牙AOA&#xff08;Angle of Arrival&#xff0c;信号到达角&#xff09;技术应运而生&#xff0c;以其独特的优势和强大的功能&#xff0c;为仓库人员定位…

【轻量级密码算法】当安全遇上资源瓶颈:轻量级加密为何成为 IoT 时代的刚需?

在智能家居的场景中&#xff0c;当你轻触智能门锁的指纹识别区域&#xff0c;期望它能快速响应并解锁时&#xff0c;你是否想过在这短短几秒内&#xff0c;门锁内部的微控制器&#xff08;MCU&#xff09;正在进行着复杂的安全验证操作&#xff1f;然而&#xff0c;对于大多数资…

嵌入式开发学习———Linux环境下网络编程学习(四)

数据库简介数据库是结构化数据的集合&#xff0c;用于高效存储、检索和管理数据。常见的数据库类型包括关系型&#xff08;如MySQL、SQLite&#xff09;和非关系型&#xff08;如MongoDB&#xff09;。关系型数据库使用表格形式存储数据&#xff0c;并通过SQL&#xff08;结构化…

在 CentOS 7 上搭建 OpenTenBase 集群:从源码到生产环境的全流程指南

目 录什么是OpenTenBaseOpenTenBase源码编译安装安装依赖创建opentenbase用户源码获取编译安装初始化数据库初始化数据库集群启动与停止服务基本使用示例开机自启动配置总结官网教程链接什么是OpenTenBase OpenTenBase 是一个提供写可靠性&#xff0c;多主节点数据同步的关系数…

LoRaWAN网络部署全流程:从方案设计到实际落地的关键要点

一、覆盖范围&#xff1a;从理论到实践 LoRaWAN的覆盖距离在理论上可达15公里&#xff0c;但实际部署受地形和环境影响极大。 城市环境中&#xff0c;密集的建筑群和多径效应常常使网关有效覆盖半径缩小至3至5公里&#xff1b;在空旷的农村或农田场景中&#xff0c;覆盖范围可提…

portswigger labs XXE漏洞利用实战

lab1 利用外部实体注入获取文件解决此 lab 需要读取到/etc/passwd<!DOCTYPE test [ <!ENTITY cmd SYSTEM "file:///etc/passwd"> ]> <productId>&cmd;</productId>lab2 利用 XXE 执行 SSRF 攻击通过构造 xxe 请求特定的 url 获取目录拼接…

深入理解 hash -r:解决 Linux 命令缓存难题的关键密钥

前言&#xff1a;在 Linux 终端的日常操作中&#xff0c;你是否遇到过这样的诡异场景&#xff1a;明明已经升级或切换了软件版本&#xff08;比如 Node.js 从旧版更新到新版 &#xff09;&#xff0c;但执行命令时&#xff0c;系统却像被“施了魔法”&#xff0c;依旧执着地调用…

onnx入门教程(二)—— PyTorch 转 ONNX 详解

在这一节里&#xff0c;我们将详细介绍 PyTorch 到 ONNX 的转换函数—— torch.onnx.export。我们希望大家能够更加灵活地使用这个模型转换接口&#xff0c;并通过了解它的实现原理来更好地应对该函数的报错&#xff08;由于模型部署的兼容性问题&#xff0c;部署复杂模型时该函…

嵌入式LINUX——————网络TCP

一、TCP连接1.TCP特点&#xff1a;&#xff08;1&#xff09;面向链接&#xff08;2&#xff09;面向字节流&#xff08;3&#xff09;安全可靠的传输协议&#xff0c;因为会先建立连接&#xff08;4&#xff09;占用资源开销大&#xff0c;效率低&#xff0c;实时性不佳&#…

alicloud 阿里云有哪些日志 审计日志

1: 阿里有哪些audit log: Audit Related Logs Below table describe the logs available in Log Service that might be applicable to the Security Operations Team. 2: 怎么来分析呢? Overview Its recommended to built a program with SLS Consumer Group which real…

如何理解AP服务发现协议中“如果某项服务需要被配置为可通过多个不同的网络接口进行访问,则应为每个网络接口使用一个独立的客户端服务实例”?

上一句&#xff1a;[PRS_SOMEIPSD_00238]◎ 「如果某项服务需要在多个网络接口上提供&#xff0c;则应为每个网络接口使用一个独立的服务器服务实例。」(RS_SOMEIPSD_00003) 本句&#xff1a;[PRS_SOMEIPSD_00239] 「如果某项服务需要被配置为可通过多个不同的网络接口进行访问…