文章目录
前言
本人发布的一系列资料都是学习备份使用,以及方便日后复习,随着技术的不断提升,每个文章都会持续添加内容,或者是扩展文章,本是秉承着分享的心态,互相学习,互相提升,也希望提出更好的意见,以及学习思路,欢迎留言,欢迎评论,谢谢!!
后端环境搭建
IDEA环境搭建
具体搭建过程,参考PPT
关于Maven配置说明
maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件.
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。 [1]
Maven工具原理
组成部分:1.中央仓库 2. 镜像仓库 3.本地仓库
Maven配置
设定本地库
<localRepository>D:/JT-SOFT/repo</localRepository>
配置私服镜像地址
<mirror>
<id>aliyun</id>
<name>aliyun for maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
创建项目配置
URL: https://start.aliyun.com
选择Springboot版本
说明: 其中选择web包 表示添加spring/springmvc等jar包文件
1.2.6 项目调试
运行程序,检查项目是否正常
如果启动没有问题 则如图所示:
关于Maven环境配置说明
为了避免下边关于maven的问题出现,请大家点击maven局部设置与全局设置进行配置,查看其他idea相关设置点击idea偏好设置汇总
主启动方法不能执行
说明: 如图所示,主启动方法不能正常运行,原因IDEA不能识别该java工程,当做普通的文本文件。
解决方案: pom.xml 右键 add maven project
pom.xml文件jar包报错(比较常见的问题)
注意事项: 使用maven下载jar包文件时,尽量不要使用手机特点(除非特殊情况)
前提条件: 必须正确配置maven环境/配置私服镜像
关于依赖项的说明:
<!--具体的某个依赖
1.依赖的构成要素3项 称之为 "坐标"
1.1 组ID
1.2 项目名
1.3 版本号
2.坐标和本地仓库什么关系?
根据坐标去本地仓库中,查找jar包文件
3.如果依赖项报错了,则第一时间检查本地仓库中的jar包是否正确!!!
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- <version>2.3.7</version>-->
</dependency>
解决方案: 根据坐标的位置,查找本地仓库的jar包是否正确,如果下载有误则删除之后,重新刷新
扩展知识-maven中jar包依赖传递性
说明: Maven中jar包添加是有依赖的传递性. A.jar 依赖 B.jar包. B.jar包 依赖 C.jar包.
如果导入A.jar则 ABC都会动态导入.
问题: 如何实现的?
- 根据坐标查找本地仓库的jar包文件
- 查找jar包文件之后,查找xxx.pom,之后查找依赖项
- 之后根据新的坐标查找jar包文件,之后再次根据pom进行依赖循环往复 直至所有的依赖项全部加载.
扩展知识-SHA1算法
SHA1介绍
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
Hash相关知识说明
问题1: 如果对相同数据,采用相同的hash算法,
问:结果是否相同? A
A.相同 B.不相同 C.可能相同
问题2: 如果对不同数据,采用相同的hash算法
问: 结果是否相同 C
A.相同 B.不相同 C.可能相同
知识点: Hash碰撞
1.不同的数据,经过相同的hash算法,得到了相同的结果.称之为hash碰撞.
2.hash碰撞问题,在数学界是没有办法规避的!!!
关于数据传输的安全性说明
关于pom.xml文件说明
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--1.指定当前项目的坐标-->
<groupId>com.jt</groupId>
<artifactId>spring_demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring_demo1</name>
<description>spring_demo1</description>
<!--2.maven项目的配置信息,指定字符集和版本-->
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
<!--3.依赖项-->
<dependencies>
<!--具体的某个依赖
1.依赖的构成要素3项 称之为 "坐标"
1.1 组ID
1.2 项目名
1.3 版本号
2.坐标和本地仓库什么关系?
根据坐标去本地仓库中,查找jar包文件
3.如果依赖项报错了,则第一时间检查本地仓库中的jar包是否正确!!!
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!--4.依赖的管理器: 指定相关的依赖的版本信息 -->
<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>
<!--
5.build标签注意事项
1.build中的插件缺一不可.
2.mainClass中的路径必须与主启动类一致.
3.如果以后粘贴复制代码,只复制dependencies内容即可.
-->
<build>
<plugins>
<!--maven工具负责编译当前的项目-->
<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>
<!--springboot项目依赖maven的必要工具-->
<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>
</project>
关于maven常用指令
clean指令
说明: clean可以删除项目中的target目录. target目录包含了xxx.java 编译之后的所有xxx.class文件.
compile指令
说明: 将项目中的xxx.java文件编译为xxx.class文件,由maven工具完成.
install指令
说明: 将开发完成的项目打包部署 将项目形成xxx.jar包文件.
作用:
1.如果开发的是工具API/框架打成jar包. 之后其他的用户通过依赖关系可以使用该jar包.
2.可以将项目打成jar包直接部署,用户可以通过网址直接访问.
存储位置:
- target目录下 会有jar包文件
2. 根据maven坐标,会在本地仓库中生成jar包.
项目发布命令
说明: 未来项目的发布环境都是Linux系统(纯dos命令)
命令: java -jar xxxxx.jar 回车
关闭命令: ctrl + c
关于启动报错说明: 如果执行上述操作报错,第一时间检查JDK环境变量配置是否正确