目录
目录
一、Maven
1、Maven
1)Maven是一款用于管理和构建java项目的工具。
2)Maven的作用:依赖管理、统一项目结构和项目构建;
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题;
统一项目结构:提供标准、统一的项目结构;
项目构建:标准跨平台的自动化项目构建方式。
3)仓库:用于存储资源,管理各种jar包
本地仓库:自己计算机上的一个目录;
中央仓库:有Maven团队维护的全球唯一的;
远程仓库(私服):一般由公司团队搭建的私有仓库。
4)Maven坐标:资源的唯一标识,通过该坐标可以唯一定位资源位置;
使用坐标来定义项目或引入项目中需要的依赖;
Maven坐标主要组成:groupId、artifactId、version;
groupId:定义当前Maven项目隶属组织名称(通常是域名反写);
artifactId:定义当前Maven项目名称;
version:定义当前项目版本号。
2、IDEA导入Maven项目
1)方式一:打开IDEA,选择右侧Maven面板,点 + 号,选中对应项目的pom.xml文件;
2)方式二:
3、依赖管理
1)依赖:当前项目运行所需要的jar包,一个项目中可以引入多个依赖;
配置:在pom.xml中编写<dependencies>标签;
在<dependencies>标签中使用<dependency>引入坐标;
定义坐标的groupId、artifactId、version;
点击刷新按钮,引入最新加入的坐标。
2)依赖具有传递性
直接依赖:在当前项目中通过依赖配置建立的依赖关系;
间接依赖:被依赖的资源如果依赖其它资源,当前项目间接依赖其它资源。
3)排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本,通过<exclusion>实现。
4)依赖范围
依赖的jar包,默认情况下,可以在任何地方使用,可以通过<scope>....<scope>设置其作用范围;
作用范围:主程序范围内有效、测试程序范围有效、是否参与打包运行;
4、生命周期
1)Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一;
Maven中有3套相互独立的生命周期:
clean:清理工作;
default:核心工作,如编译、测试、打包、安装、部署等;
site:生成报告、发布站点等。
2)每套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段;
生命周期阶段
clean:移除上一次构建生成的文件;
compile:编译项目源代码;
test:使用合适的单元测试框架运行测试;
package:将编译后的文件打包;
install:安装项目到本地仓库;
在同一套生命周期中,运行后面的阶段时,前面的阶段都会运行。
二、SpringBootWeb
1、SpringBootWeb快速入门
需求:使用SpringBoot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~";
①.创建springboot工程,并勾选web开发相关依赖;
②.定义HelloController类,添加方法hello,并添加注解;
③.运行测试。
2、HTTP协议
1)HTTP(超文本传输协议):规定了浏览器和服务器之间数据传输的规则;
特点:基于TCP协议:面向连接,安全;
基于请求-响应模型的:一次请求对应一次响应;
HTTP协议是无状态的协议:对于事物处理没有记忆能力,每次请求-响应都是独立的;
缺点:多次请求间不能共享数据;
优点:速度快。
2)HTTP请求数据格式
3)HTTP响应格式
4)Web服务器
Web服务器对HTTP协议的操作进行封装,使程序员不必直接对协议进行操作。
3、Tomcat
1)Tomcat是一个开源免费的轻量级Web服务器,也被称为Web容器、Servlet容器;
Servlet程序需要依赖于Tomcat才能运行,基于Springboot开发的web应用程序,内置了tomcat服务器。
4、请求
1)请求:获取请求数据;
响应:设置响应数据;
BS架构:浏览器/服务器架构模式,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端;
CS架构:客户端/服务器架构模式。
2)Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件;
作用:常用于进行接口测试。
3)简单参数
原始方式:获取请求参数,通过HttpServletRequest对象手动获取;
SpringBoot方式:参数名与形参变量名相同,定义形参即可接收参数;
如果方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射;
@RequestParm中的required属性默认为true,代表该请求参数必须传递,不传递将报错,如果该参数是可选的,可以将required属性设置为false。
4)实体参数
简单实体对象:请求参数名与形参对象属性名相同,定义POPJ接收即可;
复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POPJ属性参数;
5)数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数;
6)集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系;
7)日期参数:使用@DateTimeFormat注解完成日期格式转换;