1.课程内容介绍
1.1课程安排:
a.Spring框架 最为重要!!!
b.SpringMVC框架 前后端交互 js/axios
c.Mybatis框架(结构复杂!!!) 持久层框架 首选!!!
d.SpringBoot框架
e.MybatisPlus 对Mybatis进行了升级的框架
f.搭建前端脚手架
g.搭建后端服务器
h.完成京淘项目后端开发 用户管理/商品管理/分类管理等…
i.学习Linux 语法/命令
j..实现Linux版本的项目发布! 提前购买云主机/购买域名
2.环境搭建
2.1 IDEA环境配置
....
2.2Maven
2.2.1 Maven介绍
Maven项目对象模型(POM),可以用一小段信息来管理项目的构建,报告和文档的项目管理软件;
2.2.2历史问题
2.2.3Maven的下载
URL地址: https://maven.apache.org/download.cgi
2.2.4 maven路径要求
路径不能有中文/空格/特殊字符/不要放在C盘(使用C语言编写的软件容易出现问题);
maven是用java语言开发的
2.3 maven工作原理
2.3.1 角色划分
1.本地仓库:本地保存jar包的文件目录;
2.远程仓库:maven官网维护的jar包信息其中解决了版本冲突问题,几乎维护了所有的开源jar包;
3.私服镜像:为了让国内用户快速获取jar包而搭建的国内大型服务器,它连接国外远程官网服务器定时拉取更新jar包信息,以供国内用户使用;
2.3.2 maven的工作原理
1.镜像服务器搭建时需要定期拉取国外远程官网服务器的jar信息;
2.镜像服务器将拉取到的信息保存到镜像服务器本地,供国内的用户访问,使用
3.用户使用jar包时,本地仓库会先检查本地是否拥有该jar包,有的话直接调用,没有则连接国内的镜像私服,获取jar包;
4.用户的本地仓库会将拉取到的jar包保存在本地仓库文件夹中,以供用户在需要的时候及时调用;
2.3.3 maven的配置
1.配置本地仓库的位置
2.配置镜像私服服务器
<!--阿里云的私服镜像服务器-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<!--阿里云的私服镜像服务器-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
2.3.4IDEA整合maven
说明:IDEA中每次打开一个新窗口,需要重新配置maven!!!
2.3.5创建第一个maven项目
1.URL地址:https://start.aliyun.com
2.指定坐标
3.确定版本/添加依赖
2.4 关于maven项目报错说明
2.4.1 兼容性问题
IDEA的版本,不要太低,至少2020以上,兼容maven3.8x
2.4.2 网络问题
1.下载jar包的时候不要链接手机热点,否则容易因为热点网络不稳定的问题下载到不完整的jar包
2.检查maven配置1.配置本地仓库2.配置私服镜像
3.如果私服镜像链接有问题切换如下链接
<!--阿里云的私服镜像服务器-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
注意:先将仓库清空
2.4.3关于maven缓存问题说明
说明:maven下载jar包之后,可能因为缓存导致如下报错,但程序可以正常的执行,说明jar包下载没问题,是由于缓存导致的异常;
解决方案:
1.重启IDEA
2.清空IDEA的缓存
2.4.4 IDEA不能识别maven的说明
1.IDEA识别maven的表现
2.IDEA不能识别maven的表现,IDEA将项目当做普通的目录看待了;
3.解决方案将项目添加为maven
2.5关于maven高级知识讲解
2.5.1 关于坐标的说明
1.maven坐标的意
<!--1.定义maven的坐标
1.1组id 一般采用公司域名倒写的方式 www.tedu.cn
1.2项目名 项目名称必须唯一
1.3版本号 指定项目的版本的.
问题: maven的坐标有什么意义?
答:
1.maven中央仓库采用坐标的形式管理所有的jar包.
2.可以根据坐标的位置,唯一定位jar包.
3.可以根据坐标.依赖其它项目!!!.
-->
<groupId>com.jt</groupId>
<artifactId>spring_demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring_demo1</name>
<description>spring_demo1</description>
2.5.2 Pro文件说明
<!--表示当前maven的配置信息-->
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--以后springboot的平台的版本就是2.3.7-->
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
2.5.3关于依赖项的说明
说明:maven通果依赖项,指定加载jar包的路径
说明2:根据坐标查找指定的jar包
3. 常见异常说明:有时maven jar包下载不正常.但是maven的工具以为是正确的,导致jar包导入报错!!如果遇到这样的报错信息,将jar包删除,然后刷新maven即可
2.5.4 管理器说明
<!--依赖的管理器,在内部指定的jar包的版本,所以不需要手动指定
一般多见于 springboot/springCloud的项目.
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.5.5build说明
说明:build的标签项目编译/打包时有用
打包:将java项目打包成xxx.jar包
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.7.RELEASE</version>
<configuration>
<!--注意事项:必须与当前项目的主启动类一致 -->
<mainClass>com.jt.SpringDemo1Application</mainClass>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.5.6 项目打包说明
常识:
1.将xxxx.java文件编译我xxx.class文件;
2.将xxxxclass文件按照特定的格式要求生成xxxx.jar包
命令:
1.clean清空项目中的target目录(class文件)
2.complie 使用maven工具进行编译将xxxx.java文件编译成xxxx.class文件;(一般不用;因为IDEA会自动编译)
3.install 将java项目打包为xxx.jar
关于jar包文件的说明
1.默认条件下在target目录中会生成xxx.jar包文件.(特殊:IDEA有问题,target下没有文件);
2.install之后会在本地仓库中生成jar包!!!;
2.6 关于jar包依赖传递性问题
2.6.1 规则说明
当用户的项目依赖A.jar包,但是A.jar包又依赖B.jar包,B.jar包又依赖C.jar包时;当用户只添加A.jar包时,会自动添加B/C依赖的jar包;这就是jar包的依赖性;
2.6.2 原理说明
1.maven 通过dependency标签和坐标查找 指定的jar包文件.
2.根据坐标查找 包
2. maven加载完成jar包之后会 ,会扫描当前文件的xxxx.pom文件
3.之后根据该坐标继续添加jar包依赖项.值到将所有的依赖信息加载完成为止
2.7 如何保证jar包的安全性
2.7.1 SHA1算法
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 0-9 A-F
————————————————
版权声明:本文为CSDN博主「闪耀太阳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_16804847/article/details/122595069
2.7.2 关于hash知识复习
-
如果数据相同,进行相同的hash(函数!!!)计算, 问:结果是否相同
答案: 必定相同!!! -
如果数据不相同,进行相同的hash(函数!!!)计算, 问: 数据是否相同
答案: 可能相同!!!
本质: HASH碰撞: 数可能不相同,但是结果可能一样. -
hash碰撞能不能避免???
不能避免,但是可以降低碰撞的概率解释: hash值的数量的是有限的,但是需要hash的数据是无限的!!!;
-
常见hash一般是8位16进制数. 排列组合有多少种?
十六进制: 0-9 A-F 00000000-FFFFFFFF 答案: 2^32
思路: (24)8= 2^32
2.7.3 数据传递的原理
名词:消息摘要
.