1.Maven概述
2.1、介绍

- 仓库:用于存放资源,管理各种jar包
- 本地仓库:自己计算机上的一个目录
- 中央仓库:由Maven团队维护的全球唯一的
- 远程仓库(私服):一般由公司团队搭建的私有仓库
1.2、安装
步骤
- 解压安装包
- 配置本地仓库:修改conf/setting.xml中 localRepository标签为一个指定目录
<localRepository>E:\apach-maven-3.6.1\maven-jar</localRepository>
- 配置阿里云私服:修改 conf/setting.xml中 mirrors,为其添加以下子标签
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- 配置环境变量:MAVEN_HOME为maven解压目录并将bin加入PATH环境变量
测试
2.IDEA继承Maven
2.1、配置Maven环境
当前工程下配置
- 选择 IDEA中File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven
- 设置 IDEA 使用本地安装的 Maven,并修改配置文件及本地仓库路径

全局Maven环境

2.2、创建Maven项目
- 步骤
- 创建空项目
- 创建模块,选择Maven,Next
- 编写代码,运行


- Maven坐标
- Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置
- 使用坐标来定义项目或引入项目中需要的依赖
- 坐标主要组成
- groupId:定义当前Maven项目隶属组织名称(com.mhn)
- artifactId:定义当前Maven项目名称(通常模块名称)
- version:定义当前项目版本号
2.3、导入Maven项目
- 打开IDEA,右侧Maven面板,点击 + 号,选择对应项目的pom.xml文件即可

3.依赖管理
3.1、依赖配置
- 依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖
- 配置:
- 在 pom.xml中编写 dependencies 标签
- 在 dependencies 标签中使用 dependency标签引入坐标
- 定义坐标的 groupId,artifactId,version
- 刷新
【注意:如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖】
如果不知道依赖的坐标信息:https://mvnrepository.com搜索
3.2、依赖传递
- 依赖具有传递性
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

- 排除依赖
- 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本

3.3、依赖范围
- 依赖的jar包,默认情况下,可以在任何地方使用,可以通过 scope标签设置其作用范围:
- 主程序范围有效(main文件范围内)
- 测试程序范围由小(test文件范围内)
- 是否参与打包运行(package指令范围内)

3.4、生命周期
- Maven的声明周期就是为了对所有的maven项目构建过程进行抽象和统一
- Maven中由3套互相独立的生命周期
- clean:清理工作(清楚上一次编译的文件,意为清除缓存)
- default:核心工作(编译、测试、打包、安装、部署等)
- site:生成报告、发布站点等
【每套生命周期包含了一些阶段,阶段是由舒徐的,后面的阶段依赖于前面的阶段】

- 生命周期阶段
- clean:移出上一次构建生成的文件
- compile:编译项目源代码
- test:使用适合的单元测试框架运行测试(junit)
- package:将编译后的文件打包,jar、war
- install:安装项目到本地仓库
【注意:在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行】
执行指定生命周期的两周方式
- 在idea中,右侧maven面板,选中对应的生命周期,双击执行

- 在命令行中,通过命令执行【需要在当前项目下运行cmd】

4.SpringBootWeb入门
快速入门
- 使用 SpringBoot 开发一个web应用,浏览器发起请求 /hello 后,给浏览器返回字符串 Hello World
步骤
- 创建springBoot工程,勾选web开发相关依赖


定义HelloController类,添加方法 hello,并添加注解
@RestController
public class HelloControl {
@RequestMapping("/hello")
public String test(){
System.out.println("Hello SpringBoot");
System.out.println("");
return "Hello SpringBoot";
}
}
运行测试
5.Http协议
5.1、概述
概念:
- Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

特点:
- 基于TCP协议:面向连接,安全
- 基于请求-响应模型的:一次请求对应一次响应
- Http协议是无状态的协议:对事务处理没有记忆能力,每次请求-响应都是独立的
5.2、请求协议


- 请求方式-get
- 请求参数在请求行中,没有请求体,get请求大小有限
- 请求方式-post
5.3、响应协议

- 状态码
- 200:客户端请求成功
- 404:请求资源不存在,URL有误
- 500:服务端发生不可预测的错误(BUG)
5.4、协议解析
- Web服务器
- Web服务器是一个软件程序,对Http协议的操作进行封装,使得程序员不必直接对协议进行操作,让web开发更加便捷,主要功能“提供网上信息浏览服务”
6.Web服务器-Tomcat
6.1、简介
- 概念
- Tomcat是 Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范
- JavaEE
- Java Enterprise Edition,Java企业版,指Java企业级开发的技术规范综合。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAP
- Tomcat
- 也称为 web 容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行
- 官网:https://tomcat.apache.org/
6.2、基本使用
【注意:Http协议默认端口为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号】
6.3、入门程序解析

- 起步依赖
- spring-boot-starter-web:包含了web应用开发所需要的常见依赖
- spring-boot-starter-test:包含了单元测试所需要的常见依赖
内嵌Tomcat