JavaEE主要是学习对各种框架的学习, 以及如何把这些框架应⽤在企业中, 来实现⼀些web开发
1. 什么是框架
框架将产品的共性提取出来,是一个实现了部分功能的半成品,之后我们可以将这个半成本自主进行装修,成为“成品”
2. 主要学习什么
1. 什么是Maven
Maven是⼀个项⽬管理⼯具, 通过pom.xml⽂件的配置获取jar包,⽽不⽤⼿动去添加jar包
pom.xml⽂件就是 maven 的配置⽂件,⽤以描述项⽬的各种信息
2. 如何创建一个Maven项目
IDEA本⾝已经集成了Maven, 我们可以直接使⽤, ⽆需安装,File -> New -> Project
3. 功能:项目构建
提供了一系列相当于快捷键的命令,当进行修改操作后,不需要走完所有流程
打包就是把所有的class⽂件, 全部放在⼀起, 打成jar包或者war包
(1)jar包和war包都是⼀种压缩⽂件
(2)jar包就是把开发⼈员已经写好的⼀些代码进⾏打包. 打好的jar包就可以引⼊到其他项⽬中, 也可以直接使⽤这些jar包中的类和属性. 另外也可以打成可执⾏jar包, 这样的包就可以通过java -jar命令来执⾏
(3)war包可以理解为是⼀个web项⽬,⾥⾯是项⽬的所有东西, 通常⽤于⽹站
4. 功能:管理依赖
依赖:指当前项⽬运⾏所需要的jar包
(1) 依赖配置
使用JDBC时, 我们需要⼿动下载mysql-connector-java的包.并且添加到项⽬中
如果使⽤Maven, 我们只需要在pom.xml中引⼊mysql-connector-java的依赖就可以了
<dependencies>
<!--⾥⾯放置项⽬的依赖坐标, 可为多个 -->
</dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
(2) 依赖传递
早期没有使用Maven时,如果A依赖B,B依赖C,那么A项目引⼊B 的同时, 也需要引⼊C如果我们⼿动管理这个依赖, 这个过程就会⽐较⿇烦, 我们需要知道每个库都依赖哪些库, 以及这些依赖之间的版本是如何关联的
但使⽤maven的话, 就可以避免管理所需依赖的关系。我们只需要在pom⽂件中, 定义直接依赖就可以了, 由于maven的依赖具有传递性,所以会⾃动把所依赖的其他jar包也⼀起导⼊
此时也把依赖分为【直接依赖(儿子依赖爸爸)】和【间接依赖(孙子依赖爷爷)】
(3) 排除依赖
排除依赖:主动断掉某些不怎么需要的依赖(被排除的资源⽆需指定版本)
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>6.0.6</version>
<!--排除依赖-->
<exclusions>
<exclusion>
<artifactId>spring-jcl</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
(4) 依赖调解
当项目中的依赖存在冲突时,如A->B->C->X(1.0),A->D->X(2.0)
Maven会采⽤最短路径优先的原则去选择依赖,这⾥2的依赖路径更短,所以会选择X(2.0), 当然我们也可以选择指定某个依赖的版本
当然也可以指定X的版本
5.所需插件
(1) Maven Help
作用:观察包和包之间的依赖关系
安装:安装插件: File -> Settings ->Plugins -> 搜索’Maven Help’ -> 找到对应插件, 点击Install 安装即可, 安装后需要重启下idea, 才能⽣效
6.Maven 仓库
(1) 概述
在Maven中, 根据 groupId、artifactId、version(三者合起来叫【坐标】) 的配置, 来唯⼀识别⼀个 jar 包, 缺⼀不可
当我们在pom⽂件中配置完依赖之后, 点击刷新, Maven会根据坐标的配置, 去仓库⾥寻找Jar包, 并把他下载下来, 添加到项⽬中. 这个Jar包下载的地⽅就称为仓库
(1)仓库:⽤于存储资源,管理各种jar包
(2)Maven仓库的本质就是⼀个⽬录(⽂件夹),这个⽬录被⽤来存储开发中所有依赖(jar包, 插件等)
(2)本地仓库
本地仓库: ⾃⼰计算机上的⼀个⽬录(⽤来存储jar包)
当项⽬中引⼊对应依赖jar包后,⾸先会查找本地仓库中是否有对应的jar包
本地仓库地址可以通过Maven配置查看:File -> Settings
修改仓库地址
选override,copy原文件地址到想要的地方,然后修改
(3)中央仓库
中央仓库: maven 软件中内置⼀个远程仓库地址,就是中央仓库,服务于整个互联⽹. 由 Maven 团队维护,全球唯⼀
我们可以把⾃⼰写好的Jar包上传到中央仓库(具备⼀定的要求), 也可以从中央仓库下载Jar包
查找Jar的坐标
(4)私服
私服: ⼀般由公司团队搭建的私有仓库,属于某个公司/部门,需要一定的权限才能进入
有了私服之后, Maven依赖下载的顺序⼜发⽣了变化
当Maven需要下载资源的时候:
优先级:本地仓库 — 私服 — 中央仓库
如果最后中央仓库里资源不存在,会报错。如果存在,就先缓存在私服上之后,再缓存到本地仓库⾥, 再为Maven的下载请求提供服务
私服是很多⼈在使⽤的, 所以只需要第⼀个使⽤者下载⼀次就可以了
(5)Maven 设置国内源
因为中央仓库在国外, 所以下载起来会⽐较慢, 所以咱们选择借助国内⼀些公开的远程仓库来下载资源
也就相当于在私服和中央仓库之间,再加入了一个国内源
配置国内源需要两个方面:
1.介绍
Spring Boot是基于Spring Framework来进⾏开发的, 但是Spring Framework存在配置多, ⼊⻔难的问题, 为了简化开发者的使⽤, SpringBoot就诞生了
Spring Boot 就是 Spring 框架的脚⼿架,可以快速开发 Spring 框架
2.Spring Boot 项目创建
(1)SpringBoot版本 , 选择任意2.X的,不带snapshot的(通过代表的是不稳定版本) 这个版本会随着SpringBoot的升级⽽发⽣变化, 不固定,3.X版本使⽤的是jdk17
(2)打勾表⽰创建项⽬之初, 就引⼊的第三⽅依赖(框架, 插件, 组件等…后⾯再细讲)
(3)所有引⽤的第三⽅框架
注意:
3. 项目代码介绍
(1)pom 文件
pom.xml⽂件⾥的具体信息, 不需要过度关注, 我们主要看< dependencies>标签⾥⾯的内容
pom⽂件中, 引⼊了两个依赖
(2)父工程
每⼀个SpringBoot⼯程,都有⼀个父工程依赖的版本号
⽗⼯程指定版本号后, 就会⾃动引⼊和所指定版本对应的依赖, 创建的SpringBoot项⽬, 会继承SpringBoot父工程
所以没有指定版本的子工程也可以正常运行
4. 目录介绍
如何设置:
方法一:右键文件夹 ---- Mark Directory as — 自主选择
方法二:File — Project Structure — Modules
Spring Boot可以帮助我们与浏览器进行交互
(1)请求响应分析
Tocmat默认端⼝号是8080, 所以我们程序访问时的端⼝号也是8080
浏览器输入url,进行请求,而请求的对象路径 -----> 计算机 ----> 端口号 ----> 具体的方法路径
而请求是发送给服务器的, 服务器根据浏览器传来的请求(是哪个端口号,那个方法),进行响应,即返回到浏览器界面上
SpringBoot 内置了Tomcat服务器(一个web服务器), ⽆需配置即可直接运⾏
Tomcat 对上,联系浏览器,主要就是根据浏览器的请求,返回数据,对下,就是处理客户端的HTTP请求,而HTTP协议还是主要负责客户端和服务器这边的通信,起到制定规则的作用
2. 代码
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@RequestMapping("/sayHi")
public String sayHi(){
return "hello,Spring";
}
}