第4章 Maven + SpringBootWeb入门
4.1 Maven
Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。
官网:Welcome to Apache Maven – Maven
Apache的开源项目:Welcome to The Apache Software Foundation
4.1.1 Maven的作用?
-
依赖管理:在maven项目的pom.xml文件中添加相关依赖的配置信息。
-
统一项目结构:提供标准、统一的项目结构(maven工程)。
-
项目构建:提供了编译、测试、打包、发布等命令来进行项目构建。
4.1.2 Maven安装
下载地址:Download Apache Maven – Maven
安装步骤:
1.解压安装
解压缩后的目录结构如下:
-
bin目录 : 存放的是可执行命令。(mvn 命令重点关注)
-
conf目录 :存放Maven的配置文件。(settings.xml配置文件后期需要修改)
-
lib目录 :存放Maven依赖的jar包。(Maven也是使用java开发的,所以它也依赖其他的jar包)
2.配置本地仓库
2.1 在自己计算机上新一个目录(本地仓库,用来存储jar包)
2.2 进入到conf目录下修改settings.xml配置文件
1). 使用超级记事本软件,打开settings.xml文件,定位到53行
2). 复制<localRepository>标签,粘贴到注释的外面(55行)
3). 复制之前新建的用来存储jar包的路径,替换掉<localRepository>标签体内容
3.配置阿里云私服
由于中央仓库在国外,所以下载jar包速度可能比较慢,而阿里公司提供了一个远程仓库,里面基本也都有开源项目的jar包。
进入到conf目录下修改settings.xml配置文件:
1). 使用超级记事本软件,打开settings.xml文件,定位到160行左右
2). 在<mirrors>标签下为其添加子标签<mirror>,内容如下:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
注意配置的位置,在<mirrors> ... </mirrors> 中间添加配置。如下图所示:
==注: 只可配置一个<mirror>(另一个要注释!) ,不然两个可能发生冲突,导致jar包无法下载!!!!!!!==
4.配置环境变量
Maven环境变量的配置类似于JDK环境变量配置一样
1). 在系统变量处新建一个变量MAVEN_HOME
-
MAVEN_HOME环境变量的值,设置为maven的解压安装目录
2). 在Path中进行配置
-
PATH环境变量的值,设置为:%MAVEN_HOME%\bin
3). 打开DOS命令提示符进行验证,出现如图所示表示安装成功
mvn -v
4.1.3 在IDEA中集成Maven分几步?
4.1.3.1 当前工程设置
1、选择 IDEA中 File => Settings => Build,Execution,Deployment => Build Tools => Maven
2、设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径
Maven home path :指定当前Maven的安装目录
User settings file :指定当前Maven的settings.xml配置文件的存放路径
Local repository :指定Maven的本地仓库的路径 (如果指定了settings.xml, 这个目录会自动读取出来, 可以不用手动指定)
3、配置工程的编译版本为11
-
Maven默认使用的编译版本为5(版本过低)
上述配置的maven环境,只是针对于当前工程的,如果我们再创建一个project,又恢复成默认的配置了。 要解决这个问题, 我们就需要配置全局的maven环境。
4.1.3.2 全局设置
1、进入到IDEA欢迎页面
-
选择 IDEA中 File => close project
2、打开 All settings , 选择 Build,Execution,Deployment => Build Tools => Maven
3、配置工程的编译版本为11
这里所设置的maven的环境信息,并未指定任何一个project,此时设置的信息就属于全局配置信息。 以后,我们再创建project,默认就是使用我们全局配置的信息。
4.1.4 依赖范围
scope标签的取值范围:
scope值 | 主程序 | 测试程序 | 打包(运行) | 范例 |
---|---|---|---|---|
compile(默认) | Y | Y | Y | log4j |
test | - | Y | - | junit |
provided | Y | Y | - | servlet-api |
runtime | - | Y | Y | jdbc驱动 |
4.1.5 执行Maven生命周期(构建项目)
在日常开发中,当我们要执行指定的生命周期时,有两种执行方式:
-
在idea工具右侧的maven工具栏中,选择对应的生命周期,双击执行
-
在DOS命令行中,通过maven命令执行
常用的阶段命令:
• clean:移除上一次构建生成的文件
• compile:编译项目源代码
• test:使用合适的单元测试框架运行测试(junit)
• package:将编译后的文件打包,如:jar、war等
• install:安装项目到本地仓库
4.1.6 清理maven仓库
可能由于网络的原因,jar包下载不完全,这些不完整的jar包都是以lastUpdated结尾。
可以定义一个批处理文件del_lastUpdated.bat,在其中编写如下脚本来删除:
set REPOSITORY_PATH=E:\develop\apache-maven-3.6.1\mvn_repo rem 正在搜索... del /s /q %REPOSITORY_PATH%\*.lastUpdated rem 搜索完毕 pause
注意:具体的maven仓库路径要用自己的!!!
4.2 SpringBootWeb
Spring的官网(Spring | Home)
4.2.1 为什么使用SpringBoot?
Spring Boot 可以帮助我们非常快速的构建应用程序、简化开发、提高效率 。
springboot呢,最大的特点有两个 :
-
简化配置:起步依赖,自动装配。
-
快速开发
4.2.2 什么是HTTP协议?
HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。
-
http是互联网上应用最为广泛的一种网络协议
-
基于请求-响应模型: 一次请求对应一次响应(先请求后响应)
-
http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输
-
浏览器向服务器进行请求时:
-
服务器按照固定的格式进行解析(请求行、请求头 、请求体 )
服务器向浏览器进行响应时:
-
浏览器按照固定的格式进行解析(响应行 、响应头 、响应体 )
-
-
-
常用的http请求协议:GET、POST、PUT、DELETE
-
常用的响应状态码:
状态码分类 说明 1xx 响应中 --- 临时状态码。表示请求已经接受,告诉客户端应该继续请求或者如果已经完成则忽略 2xx 成功 --- 表示请求已经被成功接收,处理已完成 3xx 重定向 --- 重定向到其它地方,让客户端再发起一个请求以完成整个处理 4xx 客户端错误 --- 处理发生错误,责任在客户端,如:客户端的请求一个不存在的资源,客户端未被授权,禁止访问等 5xx 服务器端错误 --- 处理发生错误,责任在服务端,如:服务端抛出异常,路由出错,HTTP版本不支持等 -
200 ok 客户端请求成功
-
404 Not Found 请求资源不存在
-
405 Method Not Allowed 请求方式有误
-
500 Internal Server Error 服务端发生不可预期的错误
-
4.2.3 什么是Tomcat?
Tomcat:流行的免费的开源的轻量级Web应用服务器。
Web服务器:是可以接受页面发送的请求和响应数据的软件。对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作(不用程序员自己写代码去解析http协议规则),让Web开发更加便捷。
Tomcat的官网: Apache Tomcat® - Welcome!
4.2.4 为什么SpringBoot项目可以请求响应
在SpringBoot中,引入了web运行环境(也就是引入spring-boot-starter-web起步依赖),其内部已经集成了内置的Tomcat服务器。