当前位置: 首页 > news >正文

Spring P1 | 创建你的第一个Spring MVC项目(IDEA图文详解版,社区版专业版都有~)

提要

在正式开始之前,大家可以先检查一下自己的IDEA是什么版本的,这里我们提供两种版本的讲解,社区版(带有Community字样的)以及专业版(带有Ultimate字样的),大家根据自己IDEA的版本自行选择即可

注意!!无论你是社区版还是专业版,请一定要先阅读Maven篇完成了解Maven,配置国内源,当然,如果已经配置过了则可以直接去看自己对应的版本~~

Maven

什么是Maven?

我们所谓的Maven,其实就是一个管理依赖的工具,可以直接通过pox.xml文件的配置来获取jar包就不用像我们使用Servlet时那样还要自己去下载对应的jar包并手动通过IDEA来添加

创建我们的第一个Maven项目[基于社区版]

此处我们并不会为大家讲解从0开始的Maven配置,因为IDEA中已经集成了Maven环境,所以我们此处是直接在IDEA中创建的

File -> New -> Project

在创建新项目的界面点击Maven

修改好自己项目的名称以及路径,注意名称的对应

创建成功

Maven核心功能

项目构建

Maven为我们提供了一些命令使得我们可以自动化地构建项目

在右侧我们展开Maven,在lifecycle,即它的生命周期下面就可以看到Maven为我们提供的一些命令,比如,我们点击package,那么Maven就会开始为我们打包项目

我们可以看到,此时就成功打包好了,并且IDEA还告诉了我们包所在的位置

在对应位置下我们也真的成功找到了对应的jar包

这就是Maven它搭建项目的作用,还有其它各种命令大家可以自行探索一下

依赖管理

我们在文章开始时就提到了,Maven是一个项目管理工具,通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而获取jar包这个过程我们就称之为依赖,想要添加依赖,只需要在pom.xml文件中添加如下代码即可

    <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version></dependency></dependencies>

mysql-connector-java-8.0.30.jar为例 ,输入上述代码,刷新Maven即可,无需再手动在IDEA中配置

Maven仓库

事实上,Maven引入依赖是从Maven仓库中根据dependency中对应的内容去找到那个唯一的jar包导入,而Maven仓库又分为两种类型:

  1. 本地仓库:自己计算机上的一个目录(用于存储jar包),项目引入依赖时,会先查找本地仓库中是否有对应的jar包,如果有则在项目中直接引用,如果没有就要去中央仓库中下载对应的jar包到本地仓库
  2. 中央仓库:maven软件中内置一个远程仓库地址,就是中央仓库,它服务于整个互联网,由Maven团队维护,是全球唯一的,下面是它的链接

Central Repository:

配置Maven国内源

那么事实上,我们可以发现,这个网址是在国外的,因此我们在真正使用并需要从中央仓库下载时会发现,特别的慢,那么为了解决这个问题,国内一些厂商就做了中央仓库的镜像仓库,它包含了中央仓库中的所有内容,访问速度可以大大提升,因此我们就需要配置国内的Maven仓库,这里我们以阿里的Maven镜像为例

  • File -> Settings

勾选上红色矩形中两个框框右侧的Override 

  • 点击那个文件夹的按钮找到你的settings.xmlrepository这两个文件所在的文件夹,初次配置时应该都是在C盘,可以像我一样把它挪到E盘或者其它什么盘里面,因为以后下载的依赖越来越多的话,占的内存可能会越来越多,所以建议大家移动一下盘

到你想存放的目录下,把.m2整个文件都拷贝过来

  • 用记事本编辑settings.xml文件,找到mirrors,在图中位置加上这样一段代码

        <mirror>
          <id>aliyunmaven</id>
          <mirrorOf>*</mirrorOf>
          <name>阿里云公共仓库</name>
          <url>https://maven.aliyun.com/repository/public</url>
        </mirror>

保存并退出

  • 再次回到本地仓库,即IDEA配置那个地方,将原来的设置改变成你现在这个.m2中两个文件,要对应着改哈,这样配置就完成了,刷新一下Maven

专业版创建Spring项目

请保证你在创建前已经完成了Maven的配置!!

  •  点击Spring Initializr,注意红色位置的各种配置
  •  在这个界面选择你想添加的依赖,因为我们要做Web所以我选了web

  • 等待Maven导入依赖

出现像这样的界面,右下角有下载情况就是创建成功,初次创建项目需要的时间要稍微长一点,这是正常现象,大家可以耐心等待一下

当依赖中出现一堆这样Maven的包,右侧的Maven的生命周期,插件等等都有时就说明导入依赖成功

注意点:每一次创建新项目时都要检查一下Maven本地仓库的配置,如果你发现创建项目格外慢,有可能是本地仓库的设置在新项目中重置了,重新配置,然后刷新Maven,直到像这样pom.xml不报红,build里面sync无报错

如果pom.xml中有报红,那么多半是依赖导入的问题,检查Maven仓库配置,多刷新Maven,如果都没问题依旧报红,那么可能是version问题,在中央仓库中去找对应的jar包有没有你那个版本,修改,刷新,一定要多刷Maven!!!并且要注意对照我的Maven配置,如果一直报错,试试改成我的同款配置,即用Bundled(Maven 3)

那么如果上述所有操作你都做了依旧有sync有报错,pom.xml无报错,那么可能是IDEA的缓存问题

IDEA中清理缓存

  • File -> Invalidate Caches.. -> 勾选上所有的 -> Invalidate and Restart清理IDEA缓存

测试项目

按照图示顺序依次点开文件,找到带有Application字样的类,有一个绿色可启动小三角形那个,此处我的测试是如果,在里面写了一个"Hello Spring"的输出

运行程序,出现Spring标志图标,输出内容也正常显示,运行成功

社区版创建Spring项目

社区版创建项目有两种方式,一种是官网创建版,一种是用Spring Boot Helper这个插件的版本,这里我们介绍插件版,不过要注意的是,这个插件是收费的,以前这个插件提供了免费试用版,现在好像已经没有了,大家可以自己去找找资源,这里我们会给出插件的官网地址

Spring Boot Helper Plugin for JetBrains IDEs | JetBrains Marketplace

大家可以在里面找到自己的IDEA对应的版本的插件,免费的插件要求IDEA版本在2021.1 - 2022.1.4范围内,个人建议最好还是用专业版~~~方便一点

安装插件

  • 下载好插件后我们打开IDEA,点开settings,然后按照下图序号操作

  • 找到你安装的插件的位置[导入的是zip格式的!!不要解压喔],安装好之后,重启IDEA
  • 重启窗口后看见这样一个插件就说明安装成功啦~~

创建项目

  • 选择Spring Initializr

  • 按照各个属性设置好你的项目

  • 选择你要导入的依赖,这里我导入了web

  •  配置你的IDEA项目名称和路径,注意一定要对应!!

  • 点击右下角提示框,载入Maven项目 

这里载入项目,初次创建的话比较慢,甚至有可能卡死,大家耐心等待一下~~~都是正常现象

  • 点开pom.xml,删除.RELEASE,刷新Maven

 

  • 出现这样的错误多半是Maven仓库配置问题,修改配置

  

  • 改为我这样

  • Apply,刷新Maven,sync现在无报错了,创建成功

如果pom.xml中有报红,那么多半是依赖导入的问题,检查Maven仓库配置,多刷新Maven,如果都没问题依旧报红,那么可能是version问题,在中央仓库中去找对应的jar包有没有你那个版本,修改,刷新,一定要多刷Maven!!!并且要注意对照我的Maven配置,如果一直报错,试试改成我的同款配置,即用Bundled(Maven 3)

那么如果上述所有操作你都做了依旧有sync有报错,pom.xml无报错,那么可能是IDEA的缓存问题,具体清理缓存过程请查看专业版创建Spring项目中的IDEA清理缓存

测试项目

  • 按照图示顺序,依次展开文件,找到带有Application字样的可运行类

这里我给它写了个"Hello Spring"的输出

  • 运行程序,出现Spring标志,输出也成功打印,运行成功,项目创建完成

 

http://www.dtcms.com/a/315045.html

相关文章:

  • [Shell编程] 零基础入门 Shell 编程:从概念到第一个脚本
  • 基于TurboID的邻近标记质谱(PL-MS)实验指南:从质粒构建到质谱鉴定
  • 【OS】操作系统概述
  • 互联网医院整体项目套表整理过程文档全流程分析
  • Stanford CS336 assignment1 | Byte-Pair Encoding (BPE) Tokenizer
  • 飞算JavaAI:颠覆传统开发的智能利器
  • Effective C++ 条款22: 将成员变量声明为private
  • Pixel 4D 3.4.4.0 | 支持丰富的壁纸资源,高清画质,高度的个性化设置能力,智能推荐功能
  • Ubuntu 下 MySQL 离线部署教学(含手动步骤与一键脚本)
  • 力扣面试150题--加一
  • ZCC1004E-120V 3A 零功耗使能异步降压电源芯片
  • 人工智能之数学基础:条件概率及其应用
  • JS中的Set和WeakSet联系与区别
  • 数据结构---配置网络步骤、单向链表额外应用
  • 【Linux】Linux 操作系统 - 33 , 线程(二) 线程互斥和同步 , 带你对线程使用深刻理解 !
  • 《Python 实用项目与工具制作指南》· 2.2 变量
  • JVM调优工具详解
  • 把“距离过近”的节点(或端点)合并成一个,避免重复。机器学习 python
  • web:ts元组
  • 【RH124知识点问答题】第8章 监控和管理 Linux 进程
  • Bean的生命周期和循环依赖问题的解决
  • 防火墙认证用户部署
  • 开发规范(一)移动端
  • 多线程(一)
  • 【C#】操作Execl和Word文件-1
  • 子词分词器(Byte Pair Encoding + WordPiece)
  • 如何给Word和WPS文档添加密码或取消密码
  • 【Java】使用FreeMarker来实现Word自定义导出
  • 反转字符串中的元音字母:Swift 双指针一步到位
  • EXPLAIN工具:查询执行计划分析与索引诊断