【JavaEE】(12) 创建一个 Sring Boot 项目

一、Maven

1、什么是 Maven

        Maven 用于管理项目、管理依赖(通过 POM 文件配置各种各样的 jar 包)。

        在没有 Maven 之前,需要手动 jar 包导入项目。整个流程:从网上查 jar 包并下载到本地(或者叫同事发)>>手动导入 jar 包。

        并且为了让团队中的所有人使用的 jar 包版本相同(不同可能会引发一些问题,比如接口使用方法变更),就会在源代码(src)文件下增加 lib 文件存放所有的 jar 包,占用空间很大,这就会导致项目在团队内部传输的过程效率低

        在实际商业项目中,因项目庞大,使用的 jar 包很多,不免会产生依赖冲突(版本不一致)。所以当时程序员的第一个工作就是手动理清依赖关系,导入所有需要的依赖,排依赖

        而 Maven 只需配置 POM 文件,管理所有依赖,自动从仓库下载。还能在 IDEA 安装插件,自动检测到版本冲突。以及打包项目等操作,都能通过一句 maven 命令完成。

2、创建一个 Maven 项目

        注意:Maven 和 IDEA 没有任何关系,可以单独安装 Maven,使用 cmd 命令行执行操作(网上找安装教程,还需要配置环境变量)。只不过 IDEA 集成了 Maven,就不用单独安装 Maven 配置环境了。包括 JDK,如果单独使用 JDK 就需要配置环境变量,通过命令行执行命令。而我们是在 IDEA 中使用 JDK,它已经帮我们自动配置好它的环境了,我们直接用就行。

创建:

项目结构:

maven 命令:

打包:

3、依赖管理

3.1、配置依赖

        配置 POM 文件。

        仓库查询Maven Repository: Search/Browse/Explorehttps://mvnrepository.com/        搜索 mysql,获取 JDBC 驱动的配置代码:

        点击漏洞,查看详情:说明新的版本移动到了 mysql-connector-j。

        版本选择:

  • 指定版本。(例如后续,我们使用 Spring Boot 3.x 及以上,其最低要求 JDK 17)
  • 看团队用的版本。
  • 没有漏洞的。
  • 次新版本。(最新版不稳定,可能有坑)

        我选了一个用的人最多的:

        这段代码复制下来,粘贴到 POM:

        本地仓库多了两个 jar 包,一个是 jdbc 驱动,一个是其依赖的 jar 包 protobuf,会自动下载它的依赖(像以前的话,还要手动梳理依赖,然后一个个下载)。

        这段代码其实表示,这个 jar 包在中央仓库中的地址(查询仓库会比中央仓库滞后一点):

        中央仓库Central Repository:https://repo1.maven.org/maven2/        上面这个 jar 包在中央仓库的地址就是:

3.2、切换本地仓库的路径

        本地仓库就是本地存放 jar 包的位置:file>>settings>>搜索maven

        换位置:把这个默认路径下的 .m 文件复制到指定位置,在 IntelliJ IDEA 2022.1.4\plugins\maven\lib\maven3\conf 有一个 settings.xml,也复制到 .m 文件里面:

        改路径,C 盘里下载的 jar 包就可以删了,节省空间:

        中央仓库、本地仓库、项目之间的关系:

        有些 jar 包是公司内部用的,会传到私服,从私服下载,需要用户名、密码,可能 settings.xml 或者 pom.xml 里面有,大概长这样:

3.3、配置国内镜像源

        如果从中央仓库下载很慢,可以在 settings.xml 里设置国内镜像源(国内的服务器,中央仓库的复制,从网上找):

3.4、检查版本冲突的插件

        检查冲突的插件:

        如果我们不想下载某个 jar 包,比如我们用不到 jdbc 驱动 jar 包中依赖的 protobuf jar 包的部分,想排除 protobuf jar 包,设置 POM 文件:

二、Spring Boot

1、什么是 Spring Boot

        Spring Boot 是对 Spring(Spring Framework) 的进一步包装,另外还增加了其它功能,比 Spring 更好用。

2、安装 Spring Boot 插件

        专业版不需要安装插件,集成了 Sring Boot。社区版需要安装

        插件商城搜索 Sring Boot Helper,点击 homepage 进入插件下载页面(不要直接 Install,新版本要钱)。

        下载免费版,对应 IDEA 社区版 2021.1.1-2022.1.4(如果不是这些版本,卸载 IDEA,网上找教程,注意注册表也要卸载):

        安装好后,导入本地插件压缩包:

        安装好的插件不要更新:

        还有在线版的 Sring Boot:Spring Initializrhttps://start.spring.io/        跟 IDEA 上一样的,IDEA 就是从网页版导入的模板:

        然后就会把项目下载下来,导入(点击项目里的 POM)到 IDEA 就行,这种不需要下插件(插件只是用来创建 Spring Boot 项目的而已):

3、创建 Spring Boot 项目

        file>>new>>project:Sring Boot 3.X 版本对应 JDK 17,3.X 以下对应 JDK 8(我用的专业版)。国内镜像:https://start.aliyun.com/

        第一创建 Sring Boot 项目会很久,耐心等待,这个插件(用于把第三方的 jar 包也打包进去,跟程序在 IDEA 运行无关,跟 maven 打包有关)可能会有下载不下来的情况:

        我们需要配置国内镜像源,需要区分两种情况,我们需要配置的是 New Projects Stetup,每个项目都从国内镜像源下载:

        配置方法跟 Settings 一样:

        刷新,下载好后:

        如果是社区版,这里的 RELEASE 要删除,中央仓库没有这个地址(这个 parent 表示 spring boot 是基于此编写的):

        这是专业版,这一块就是社区版的 parent 包含的内容,作用就是 spring boot 帮我们理清了 sprint boot 需要的所有依赖,并且排包:

        点进去可以看到,列出了很多依赖:

        这里的测试代码是指开发人员写的(不是测试人员的工作),开发人员要写单元测试用例。这俩版本号没写,是跟 spring boot 一致的,代码能检测到。

        这里可以改文件性质:

        这也能改:

        写一个简单的代码启动项目:

        启动类里点击启动:

        这个程序会一直运行:

        打开浏览器访问:

4、什么是 Web 服务器

        Web 服务器就是对 http 协议进行了包装,不需要我们去实现包装请求/响应等操作,我们只需要把程序放到 Web 服务器运行即可。目前常用的 Web 服务器就是 Tomcat,由于 Sring Boot 内置了 Tomcat,所以我们不需要单独配置 Tomcat。Tomcat 的端口号是 8080,所以访问我们的程序的端口号也是 8080

        实际上,Tomcat 上可以运行多个服务(也可以不是 Spring Boot 框架的程序),Spring Boot 也可以不用 Tomcat 部署。但 Tomcat 是内置在 Spring Boot 中的,所以启动 Sring Boot 项目,本质是启动了 Tomcat,这个 Tomcat 只能部署这一个项目。因为只部署了一个项目,所以 context path 可以省略

5、常见的访问出错情况

        4 开头的一般是客户端错误(一般看浏览器 url 跟代码中注解映射的 path 一致不一致),5 开头的一般是服务器错误(一般看浏览器页面提示和 Tomcat 日志,倒着一段一段看)。

5.1、404

        404 表示资源不存在:

  • url 写错了

  • @RestController 注解写成了 @Controller

5.2、500

        服务器崩溃。

  • 程序存在异常,没有处理:

5.3、无法访问此网站

        服务器程序未启动:

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

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

相关文章

最终章【1】Epson机器人篇

1,开发环境 Epson RC 7.5.1 RC90控制器 2,条件分支指令 2.1,If...EndIf,逻辑判断分支 语法格式: If 条件1 Then 处理逻辑1................ ElseIf 条件2 Then 处理逻辑2................ Else 处理逻辑3................ EndIf 例子: String order$If ord…

vue3 实现web网页不同分辨率适配

vue3 实现web网页不同分辨率适配首先这个标题可能不是特别的合适,之前开发了一个网站,那个网站是类似于官网的效果,按照 19201080100% 的分辨率进行开发的,但是在开发完成之后,发现有的电脑是 19201080125% 的大小展示…

电子电路原理学习笔记---第5章特殊用途二极管---第2天

5.5阅读数据手册图5-15给出了1N957B和1N4728A系列的齐纳二极管数据手册中的数据,再后面的讨论中将参考这些数据。数据手册中大部分信息是提供给电路设计者的,但有些内容在故障诊断和测试时也有必要了解。5.5.1最大功率齐纳二极管的功率等于它对应的电压与…

实现一个二维码让 iOS 和 Android 用户自动跳转到对应下载链接

实现一个二维码让 iOS 和 Android 用户自动跳转到对应下载链接 背景 开发一个APP后,需要分发Android测试包和iOS TestFlight的场景,但为两个端分别生成二维码,需要为二维码标识系统以免导致用户扫错码。如何实现一个二维码让 iOS 和 Androi…

Docker中ES安装分词器

1、下载好的文件上传到虚拟机或者云服务器 https://release.infinilabs.com/analysis-ik/stable/ elasticsearch-analysis-ik-8.10.4.zip 2、将本地 ZIP 文件复制到容器内的临时目录(如 /tmp/) docker cp /data/elasticsearch-analysis-ik-8.10.4.zip e…

掌握while循环:C语言编程基础

目录 一、while循环简介 二、if和while的对比 语法结构对比: 实际代码对比: 三、while语句的执行流程 while循环的执行流程如下: 流程图表示: 四、while循环实践 练习:在屏幕上打印1~10的值 五、进阶练习 题…

XML Schemas 简介

XML Schemas 简介 引言 XML(可扩展标记语言)是互联网上用于数据交换的一种标准标记语言。随着互联网技术的飞速发展,XML因其灵活性和可扩展性而被广泛应用于各种领域。XML Schemas(XML模式)作为一种定义XML文档结构的机制,为XML文档提供了严格的规范,确保了数据的准确…

Gradle(二)Gradle的优势、项目结构介绍

目录一、什么是 Gradle?二、为什么选择 Gradle?三、Gradle 的项目结构3.1 项目结构3.2 gradle wrapper 包装器3.3 settings.gradle 设置文件3.4 build.gradle 核心构建文件1)原始文件内容2)plugins 插件3)repositories…

机器学习-决策树(上)

决策树构建: 决策树的结构与python中的二叉树结构(PY数据结构-树)相似,不过决策树中除了叶节点之外的其他节点,都被称之为“决策节点”,构建决策树的过程,也就是选取每一个节点采用哪一个特征作为划分依据的过程。 以…

一周学会Matplotlib3 Python 数据可视化-绘制直方图(Histogram)

锋哥原创的Matplotlib3 Python数据可视化视频教程: 2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 课程介绍 本课程讲解利用python进行数据可视化 科研绘图-Matplotlib,学习Matplotlib图形参数基本设置&…

uni-app之删除没用的文件,搭建页面

文章目录一、初始化项目1.1 初始化index.vue1.2 删除无用文件1.3 初始化后的目录结果如下二、文件目录分析2.1 核心文件2.2 关键文件夹​2.3 其他文件2.4 注意事项​​三、创建页面(pages)3.1 创建home页面3.2 创建其他页面3.3 查看pages.json3.4 删除index页面和pages.json的配…

99、【OS】【Nuttx】【构建】cmake 配置实操:问题解决

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 背景 接之前 blog 【OS】【Nuttx】【构建】cm…

2007-2023年各省环境保护支出统计数据

数据介绍 环境保护支出是指政府和企业为改善生态环境质量、防治污染、保护自然资源所投入的资金,涵盖污染防治、生态修复、环境管理等多方面。污染防治支出、生态保护支出、环境管理事务、资源节约与循环利用等,当前环保支出仍面临区域不平衡、隐性债务…

PyCharm(2025.1.3.1)绑定 Conda 环境

1. Pycharm 右下角,选择( 如图所示 )2. Path to conda 这里选择如图所示的这个文件( 在你下载的 Anaconda 文件里 ),之后在 Enviroment 中就可以看到你新创建的环境了

Liunx文件系统详解

目录 1.磁盘 1.1 概念 1.2 磁盘物理结构 1.3 磁盘的存储结构 1.4 磁盘的逻辑结构 1.5 CHS && LBA地址 2.基础文件系统 2.1 块 ​编辑 2.2 分区 2.3 inode 3.ext2 ⽂件系统 3.1 宏观认识 3.2 Block Group 3.3块组内部构成 3.3.1 超级块(Supe…

Mac如何安装telnet命令

Mac如何安装telnet命令_mac telnet-CSDN博客

【SpringBoot】持久层 sql 注入问题

目录 概述 #{} 与 ${} 概述 前端恶意传参,改变后端 sql 语句的语法结构,从而使后端给前端返回一些私密的数据。这种安全问题往往是因为没有严格过滤参数,或者后端代码不严谨导致的。 #{} 与 ${} 在 MyBatis 框架中,#{} 与 ${} 都…

怎么写好汉语言文学专业的论文?

磨刀不误砍柴功, 前期多看文章和文献,吸取写作经验,写作过程会更加顺利噢!看到最后,相信你能得到收获! 写汉语言专业论文并不难,从选题、资料准备、框架搭建、正文写作、修改定稿五个核心环节展…

MySQL User表入门教程

一、User表概述 MySQL的user表位于mysql系统数据库中,是MySQL权限系统的核心,用于存储用户账户信息、认证方式和全局权限。通过操作此表,可实现用户创建、权限分配及安全审计。 二、User表核心字段解析字段名作用示例值Host用户允许连接的主机…

[NPUCTF2020]这是什么觅

题目是一个文件,我们先以记事本打开一下,开头就是PK,基本可以确定这是一个 ZIP 格式的压缩包​,不确定可以用winhex打开:​50 4B 03 04开头则 100% 是 ZIP 文件。改一下后缀之后解压得到一张图片上面是日期&#xff0c…