SpringBoot环境搭建与初创程序

news2024/11/18 9:30:07

一:IDEA环境准备

IDEA社区版版本: 2021.1-2022.1.4


IDEA专业版版本: 无要求


🌟如果个人电脑安装的IEDA不在这个范围,需要卸载重新安装;且⼀定要删除注册表

参考文章➜IDEA卸载和删除注册表

二: Maven

(1)Maven的概念

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

(2)Maven的作用

🌟简单,方便,提高我们的开发效率,减少我们的开发Bug


💜Maven提供的功能非常多;比如项目构建、管理依赖......

(3)创建Maven项目

①左上角的File➜new➜project


②选择Maven,然后next,接着配置名字和路径,即可完成


③了解不同目录的作用

(1)pom.xml:主要是Maven项目最主要的配置文件

(2)src:主要用来放Java源代码

(3)main:主要放一些业务代码

(4)main/Java:主要用来放Java代码

(5)main/resources:主要用来放一些依赖的资源(图片、音频.....)

(6)test:主要放一些测试代码

 (4)Maven核心功能

1.项目构建

💗Maven给我们提供了一套简单的命令来完成项目的构建


🌟点击最右侧的Maven,点开Lifecycle,里面就是Maven提供的命令


💜Maven常用命令

2.管理依赖

①依赖:指当前项目所需要的第三方库、框架等等


②在pom.xml文件中引入对应的依赖即可

(Maven中央仓库里就有大量不同功能的依赖➜Maven中央仓库)


③关于引入依赖的步骤

(1)首先在pom.xml文件中,添加<dependencies></dependencies>标签

(标签里可以放很多依赖)

(2)接着在<dependencies></dependencies>标签里添加所需的依赖

(比如我引入一个mysql的依赖)

(3)点击刷新按钮,引入新加入的依赖

(必须要点击刷新,确保依赖能够出现且生效)

3.依赖传递

💗由于Maven的依赖具有传递性,所以会自动把所依赖的其他jar包也⼀起导入


🌟比如A依赖B,B依赖C,那么引入A的同时,也需要引入B和C

4.依赖排除

①功能:主动断开依赖的资源

(被排除的资源无需指定版本)


②使用原因:随着项目的越来越复杂,库之间的依赖关系也会变得越来越复杂;有些时候我们并不需要用到某种依赖,或者有些依赖版本之间发生了冲突,那我们就断开它

(比如在上图中,如果项目A不需要JarB,也可以通过排除依赖的方式来实现)


③方法:Maven Help插件

(下文详细说到)

(5)Maven Help插件

1.作用

🌟问题:当项目比较复杂时,我们就会有Jar包冲突的问题,这时候就需要去解决依赖冲突;解决冲突之前,需要先找到冲突,那该如何找到冲突?


💗我们可以使用Maven Help插件来观察包和包之间的依赖关系,找到依赖冲突

2.下载

🌟安装插件:

File➜Settings➜Plugins➜搜索Maven Help➜找到对应插件➜点击Install安装

(安装后需要重启下IDEA,才能生效)


3.功能

💗此时pom.xml的底部有个Dependency Analyzer,点击它就可以看到依赖之间的关系


💙(1)Conflicts:依赖冲突

💙(2)All Dependencies as List:以排序方式展示出依赖

💙(3)All Dependencies as Tree:以树型方式展示出依赖


💚通过右键依赖,选择Exclude,即可进行依赖排除

(6)关于坐标和仓库

1.坐标

💗在Maven中,根据groupId、artifactId、version的配置,来唯一识别一个jar包,缺一不可;我们就把类似于下面这段代码称为坐标


2.仓库

①本质:Maven仓库的本质就是一个目录/文件夹,这个目录被用来存储开发中所有依赖,比如jar包、插件等等


②功能:用于存储资源,管理各种jar包


③分类:中央仓库、本地仓库、私服


🌟当我们在pom文件中配置完依赖之后,点击刷新,Maven会根据坐标的配置,去仓库里寻找Jar包,并把它下载下来,添加到项目中

(7)中央仓库

1.概念

💗①Maven软件中内置⼀个远程仓库地址,就是中央仓库


💗②Maven中央仓库服务于整个互联网;由Maven团队维护,全球唯⼀

(中央仓库在国外,本地仓库在本地计算机)

2.地址

中央仓库地址➜中央仓库

(中央仓库里面存放了很多jar包和依赖,我们会在中央仓库去寻找所需的依赖)

3.如何找到所需的依赖

①打开中央仓库地址


②输入要找的jar包或者依赖的关键词

(下图以mysql为例)


③选择依赖或者jar包的版本


④点击版本后往下拉,找到如下图所示页面

(8)本地仓库

1.概念

💗自己本地计算机上的一个目录,用这个目录来存储jar包

(中央仓库在国外,本地仓库在本地计算机)

2.查找

当项目中引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包

(1)如果有,则在项目直接引用

(2)如果没有,则去中央仓库中下载对应的jar包到本地仓库


3.地址

💜本地仓库地址可以通过Maven配置查看

(Local repository就是本地仓库地址)


(9)私服

1.概念

💗一般由公司团队搭建的私有仓库


💗私服属于某个公司或者某个部门,往往需要⼀定权限

2.查找

💜有了私服之后,Maven依赖下载的顺序又发生了变化


🌟当Maven需要下载资源的时候

1. 先从本地仓库获取,本地仓库存在,则直接返回

2. 如果本地仓库没有,就从私服请求,私服存在该资源,就直接返回

3. 如果私服上不存在该资源,则从中央仓库下载,中央仓库不存在,就报错了

4. 如果中央仓库中存在,就先缓存在私服上之后,再缓存到本地仓库里,再为Maven的下载请求提供服务

(10)Maven设置国内源

1.原因

💗因为中央仓库在国外,所以下载起来会比较慢,因此我们选择借助国内⼀些公开的远程仓库来下载资源

2.国内源仓库

🌟 国内源仓库大全地址➜国内源仓库大全

3.配置当前的项目Setting

①找到setting.xml的地址


②此时如果没有setting.xml文件,就直接打开百度云复制里面的setting.xml的到.m2目录下即可

🌟百度云地址➜setting.xml(密码:lzh7)


③此时如果有setting.xml文件,则需要打开settings.xml,在mirrors节点上,添加以下内容

(这里以阿里云为例)

<mirror>
        <id>aliyunmaven</id>
        <mirrorOf>central</mirrorOf>
        <name>阿⾥云公共仓库</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
4.设置新项目的Setting

🌟上述配置的内容,只对当前项目生效,为了让后续新建的项目也生效,需要重新设置⼀下新项目的Settings


三:第一个SpringBoot程序 

⭐创建SpringBoot项目常见问题:创建项目常见问题(提取码:lzh7)

(1)了解SpringBoot

🌟SpringBoot是一个框架,我们知道Spring让Java程序更加快速,简单和安全,而SpringBoot则是为了简化Spring程序开发的


💔Servlet:Servlet需要写doGet、doPost等等方法,还需要配置Smart Tomcat


💖SpringBoot:SpringBoot写完后直接通过DemoApplication.java去运行,不需要再配置任何东西

(2)安装SpringBootHelp插件

1.针对版本

①使用社区版IDEA的才需要按安装SpringBootHelper插件


②使用专业版IDEA的不需要安装插件,IDEA已经集成了

2.查找插件并下载

🌟此处不要直接点击Install,直接点击Install,安装的是收费版(土豪请随意)


点击Plugin homepage,进入网页下载插件

(下载的是一个压缩包,但是切记切记不要解压,把它放在你想放的目录下即可)

3.安装插件

①点击上方齿轮形状的设置

②点击Install Plugin from Disk

③选择刚才下载的插件,安装,重启Idea即可


🌟当重启完IEDA之后,就可以看到Spring Initializr and Assistant,如下图所示

(3)创建SpringBoot项目

1.新建项目

File➜New➜Project➜Spring Initializr


2.了解项目

🌟推荐跟我的图选择的一样

①Project properties项目性能


②下图说明

(1)SpringBoot版本:选择任意2.X的且不带SNAPSHOT的,这个版本会随着SpringBoot的升级而发生变化,不固定 (3.X版本使用的是jdk17,不推荐;SNAPSHOT表示不稳定版本)

(2)打勾表示创建项目之初,就引入的第三方依赖,比如框架,插件,组件等

(3)所有引用的第三方框架

(4)修改pom.xml

🌟找到如下图所示的代码,把.RELEASE删掉

(5)运行SpringBoot

🌟找到如下图所示,即可运行SpringBoot


🌟运行成功如下图所示

(6)在SpringBoot写个简单代码

①在src/main/java下,找到com.example.demo的包,在这个包下再创建一个controller包,然后创建一个java文件,取名为HelloController


②在HelloController文件下写以下代码

package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class HelloController {
    @RequestMapping("/sayhi")
    public String sayHi(){
        return "hello,SpringBoot";
    }
}

③重新运行SpringBoot


④启动网页


⑤代码分析

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

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

相关文章

Java练习题-输出斐波那契(Fibonacci)数列

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;Java练习题 &#x1f4ac;个人格言&#xff1a;不断的翻越一座又…

CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属性 渐变 前端开发入门笔记(七)

CSS3是用于为HTML文档添加样式和布局的最新版本的层叠样式表&#xff08;Cascading Style Sheets&#xff09;。下面是一些常用的CSS3属性及其详细解释&#xff1a; border-radius&#xff1a;设置元素的边框圆角的半径。可以使用四个值设置四个不同的圆角半径&#xff0c;也可…

自动化测试08

Junit 为什么学了Selenium还需学习Junit Selenium自动化测试框架&#xff1b;Junit单元测试框架。 拿着一个技术写自动化测试用例&#xff08;Selenium3&#xff09; 拿着一个技术管理已经编写好的测试用例&#xff08;Junit5&#xff09; Junit相关的技术 Junit是针对Java的一…

Cesium Vue(五)— 绘制多边形

1. 使用entity创建矩形 var rectangle viewer.entities.add({rectangle: {coordinates: Cesium.Rectangle.fromDegrees(// 西边的经度90,// 南边维度20,// 东边经度110,// 北边维度30),material: Cesium.Color.GREEN.withAlpha(0.8),},2. 使用primivite创建矩形 // primivite创…

【公众号开发】Access Token的获取 · 请求公众号服务器创建自定义菜单 · 处理自定义菜单按钮事件

【公众号开发】&#xff08;3&#xff09; 文章目录 【公众号开发】&#xff08;3&#xff09;1. 获取Access token1.1 确定参数1.2 补全URL&#xff08;添加query string&#xff09;1.3 测试 2. 封装AccessToken以便保存与后期使用2.1 TokenUtils做出一些调整2.2 单例模式的A…

YOLOv5改进实战 | 更换主干网络Backbone(三)之轻量化模型Shufflenetv2

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…

【手把手教你】使用Python玩转多元时间序列分析

在探索和理解复杂的金融市场行为时&#xff0c;时间序列分析成为了一种无法忽视的强有力工具。特别是&#xff0c;当我们处理的不仅是单一的时间序列&#xff0c;而是多个时间序列并存&#xff0c;并且它们之间存在一种或多种形式的互动时&#xff0c;多元时间序列分析的重要性…

线性代数3:矢量方程

一、前言 欢迎回到系列文章的第三篇文章&#xff0c;内容是线性代数的基础知识&#xff0c;线性代数是机器学习背后的基础数学。在我之前的文章中&#xff0c;我介绍了梯队矩阵形式。本文将介绍向量、跨度和线性组合&#xff0c;并将这些新想法与我们已经学到的内容联系起来。本…

如何使用内网穿透技术实现USB设备(USB Redirector)共享

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序&#xff0c;它提供了共享和访问本地或互联网上的U…

驱动开发 CoetexA7核 字符设备驱动(LED亮灯)(单独映射寄存器实现+封装结构体映射实现)

一、单独映射寄存器实现 可参考arm点灯C语言 cortex-A7核 点LED灯 &#xff08;附 汇编实现、使用C语言 循环实现、使用C语言 封装函数实现【重要、常用】&#xff09;-CSDN博客 1 应用程序 test.c #include <stdio.h> #include <sys/types.h> #include <sys/s…

我的电子萝卜刀火了吗?

引言 大家好&#xff0c;我是亿元程序员&#xff0c;一位有着8年游戏行业经验的主程。 笔者在上一篇文章《萝卜刀真的太危险了,于是我用Cocos做了一个》中说到因女儿从学校回来之后想要我给她买一把萝卜刀被我拒绝&#xff0c;但是又想要让她体验一下&#xff0c;因此用Cocos…

【广州华锐互动】建筑安全事故VR沉浸式体验系统

在建筑行业中&#xff0c;安全永远是首要的考虑因素。传统的安全培训方法&#xff0c;如书本教学、现场演示等&#xff0c;虽然能在一定程度上提高员工的安全意识&#xff0c;但这些方法往往缺乏实际体验&#xff0c;员工在真正面临危险时可能无法做出正确的判断和反应。近年来…

nvm管理不同版本nodejs

文章目录 nvm下载卸载本地node安装nvm安装nodejsnvm查看已安装版本nvm切换nodejs版本nvm删除nodejs版本 nvm下载 nvm github下载链接 nvm 1.1.7-setup.zip&#xff1a;安装版&#xff0c;推荐使用 卸载本地node 打开cmd where node 找到上面找到的路径&#xff0c;将node.…

gulp打包vue3+jsx+less插件

最终转换结果如下 在根目录下添加gulpfile.js文件&#xff0c;package.json添加命令npm run gulp var gulp require(gulp) var babel require(gulp-babel) var less require(gulp-less) var del require(del); var spawn require(child_process).spawn;const outDir &…

亚马逊测评,买家号支付不了、砍单率高是什么问题,需要怎么解决

下半年旺季很多卖家都在使用自养号测评给产品冲一波权重&#xff0c;但是很多朋友会遇到下不了单或者砍单率过高等问题。有人以为是支付卡的问题&#xff0c;也有人觉得是IP被关联了。其实他们讲的也没错&#xff0c;但是&#xff0c;亚马逊风控不会针对某个点去进行检测&#…

中小型企网搭建

企业网项目建设实践 目录 企业网项目建设实践 一、 项目背景 二、 需求分析 三、 项目拓扑规划 四、 规划表 1. vlan规划 2. 设备管理规划 3. 端口互联规划 4. IP规划 5. SSH服务规划 五、 仿真拓扑 六、 项目实践&#xff08;配置过程&#xff09; 七…

复杂的菱形继承及菱形虚拟继承(详解)

复杂的菱形继承及菱形虚拟继承 复杂的菱形继承及菱形虚拟继承虚拟继承解决数据冗余和二义性的原理笔试面试题 复杂的菱形继承及菱形虚拟继承 单继承&#xff1a;一个子类只有一个直接父类时称这个继承关系为单继承 多继承&#xff1a;一个子类有两个或以上直接父类时称这个继…

计算机算法分析与设计(15)---贪心算法(虚拟汽车加油问题和最优分解问题)

文章目录 一、虚拟汽车加油问题1.1 问题描述1.2 思路分析1.3 代码编写 二、最优分解问题2.1 问题描述2.2 思路分析2.3 代码编写 一、虚拟汽车加油问题 1.1 问题描述 一辆虚拟汽车加满油后可行驶 n n n km。旅途中有若干加油站。设计一个有效算法&#xff0c;指出应在哪些加油…

【STL】bitset位图的介绍和使用

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;C进阶 ⭐代码仓库&#xff1a;C进阶 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们的支持是我…

优思学院|精益管理涵盖哪些内容?

精益生产管理涵盖哪些内容&#xff1f;精益生产是一种以客户需求为引导、以消除浪费和持续改进为核心的生产管理模式&#xff0c;有效提升了公司的效率和利润&#xff0c;投入却极少。它包含哪些具体要素呢&#xff1f; 准时化生产&#xff08;JIT&#xff09; JIT&#xff0…