Maven
什么是Maven?
Maven是一个项目管理工具,基于POM(Project Object Model 项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件
Maven核心功能
Maven在项目开发中的作用主要体现在两方面:
1.项目构建
Maven提供了标准的,跨平台(Linux,Windows,MacOS等)的自动化项目构建方式
当我们开发了一个项目之后,代码需要经过编译,测试,打包,发布等流程,每次代码的东西修改,都要经过这些流程,如果代码反复调试修改,这个流程就需要反复进行,就显得特别麻烦,而Maven给我们提供了一套简单的命令来完成项目的构建

比如,我们可以通过点击package来完成项目的打包操作
打包就是把所有的clas文件,全部放在一起,打成jar包或者war包
jar包和war包都是一种压缩文件,
jar包就是把开发人员已经写好的一些代码进行打包,打好的jar包就可以引入到其他项目中,也可以直接使用这些jar包中的类和属性,另外也可以打成可执行jar包,这样的包就可以通过java -jar的命令来执行
war包也可以理解为一个web项目,里面是项目的所有东西,通常用于网站
2.管理依赖
上面我们说到Maven是一个项目管理个工具,通过pom.xml文件的配置来获取jar包,而不是手动去添加jar包,获取到的jar包,其实就是依赖
pom.xml就是maven的配置文件,用来描述项目的各种信息
依赖配置:(这里的依赖指的就是当前项目运行所需要的jar包)
比如前面在学习JDBC时,我们需要手动下载mysql-connector-java的包,并且添加到项目中,当项目中用到很多依赖时,这一操作就不方便了
如果我们使用Maven,我们只需在pom.xml中引入mysql-connector-java的依赖就可以了
我们可以使用Maven Helper插件来观察包和包之间的依赖关系
(安装了插件之后,重启idea才能够生效)
Maven仓库
我们通过短短几行代码,就把依赖jar包放到了项目中,具体是如何做的呢?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这个代码我们称之为坐标,也就是唯一的
在Maven中,根据groupId artifactId version的配置,来唯一识别一个jar包,缺一不可
当我们在pom文件中配置完依赖之后,点击刷新,Maven会根据坐标的配置,去仓库里寻找jar包,并且把他下载下来,添加到项目中,这个jar包下载的地方就叫仓库
也就是说Maven仓库的本质就是一个目录(文件夹) ,这个目录被用来存储开发中的所有依赖(jar包,插件等)
Maven仓库有两种:远程仓库(中央仓库,私服等) 本地仓库:在自己电脑上
当项目中引入对应的jar包之后,首先会查找本地仓库中是否有对应的jar包
如果有的话,直接在项目中引用
如果没有,则去中央仓库中下载对应的jar包到本地仓库

中央仓库:Maven软件中内置一个远程仓库的地址,就是中央仓库,服务于整个互联网,由Maven团队维护,全球唯一
Maven设置国内源
因为中央仓库在国外,所以下载起来会比较慢,所以我们选择借助国内一些公开的远程仓库来下载资源
如何配置国内源呢?
1.配置当前项目setting
File -> Settings

1.查看配置文件的地址,如上图所示,Maven配置文件地址为:D:\mavenfile\settings.xml
2.配置国内源
Maven仓库默认在国外,国内使用时会比较慢,这一我们可以更换为阿里云
打开settings.xml,在mirrors节点,添加内容如下
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
3.设置新项目的setting
上述配置的内容只对当前项目生效,为了让后续新建的项目也生效,需要重新设置一下新项目的Settings
第一个Spring程序
什么是SpringBoot
Spring是一个高级框架,
Spring让java程序更加快速,简单和安全.Spring对于速度,简单性和生产力的关注使其成为了世界上最流行的JAVA框架
Spring官方提供了很多开源的项目,覆盖范围从Web开发到大数据,Spring发展到了今天,已经形成了自己的生态圈
SpringBoot的诞生是为了简化Spring程序开发的
SpringBoot翻译一下就是Spring脚手架,是为了快速开发spring框架而诞生的
SpringBoot项目创建
1.网页版创建(了解)

2.使用idea创建
如果使用的是idea社区版,我们需要先安装Spring Boot Helper插件才能创建SpringBoot项目
这里我们要注意社区版要手动删除pom内的release
如果包下不来:
1.重新刷Maven
2.看一下,是部分没有下载下来,还是全部没下载下来 多次尝试刷新
3,删除很多次,还是没下载下来
删除本地仓库,然后再次刷新
4,插件下载不下来,加上版本号
5,jar包如果不存在,去中央仓库寻找
6.换下网络(可能会导致一个情况,jar包下载了一半,这时候需要删除再重新下载)
如果存在报错,根本原因:包没导入
可能原因:1.maven文件有无报错 2.检查包是否导入
3.清理idea缓存
SpringBoot项目主要有两个目录:
src/main/java:java源代码
src/main/resources:为静态资源或者配置文件
src/test/java 测试代码源代码
target:编译后的文件路径
pom.xml:maven配置文件
我们EE更多是围绕着如何使用java进行web开发
我们前面学习的知识,并没法直接和浏览器进行互动的,所以接下来我们要用spring boot来实现和浏览器及用户的交互
@RestController
public class UserController{
@RequesetMapping("/sayHi")
public String sayHi(){
return "hello,spring"
}
}
重新启动项目,访问http://127.0.0.1:8080/sayHi 最终效果如下

web服务器
浏览器和服务器两端进行数据交互,使用的就是HTTP协议

前面我们已经学习了HTTP协议,知道HTTP就是HTTP客户端和服务器之间的交互数据的格式
Web服务器就是对HTTP协议进行封装.程序员不需要直接对协议进行操作(自己写代码去解析http协议规则),让Web开发更加便捷,所以web服务器也叫做www服务器 HTTP服务器主要功能是提供网上信息浏览服务
常见的web服务器有:Apache,Nginx,IIS,Tomcat,Jboss等
SpringBoot内置了Tomcat服务器,无需配置就可以直接运行
tomcat默认端口号是8080,所以我们程序访问时的端口号是8080
请求响应流程分析
浏览器输入URL之后,发送请求,就和服务器之间建立了连接

状态码:HTTP请求的处理结果:200成功 404资源不存在,考虑路径是否错误
2xx:表示成功
3xx:重定向
4xx:客户端错误(请求有问题)
5xx:通常是服务端错误