关于Maven环境说明
组件:
1. 远程仓库 官方维护了几乎所有的项目的jar包.(版权问题oracle数据)
2. 私服镜像 在国内仓库. 阿里云镜像服务器.
3. 本地仓库 用户在自己本地维护的jar包文件.
settings
1.配置本地仓库路径
2.配置私服镜像
创建项目之后,不能被maven项目标识.解决方案 右键添加项目+ Add as Maven Project
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
问题1: 如果数据相同,采用相同的hash函数 问: 值是否相同? 答案:必然相同!!!!
问题2: 常见hash编码 是多少位16进制数?? 答案: 8位16进制数
问题3: 8位16进制数,取值区间多少? 答案: 2^32
00000000-FFFFFFFF
问题4: 1kb的数据和1gb数据 hash谁快? 答案: 一样快
问题5: 数据相同则hash码相同,hash码相同数据一定相同? 不正确. **hash碰撞!**
降低碰撞概率, 增大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> <!--将父级内容进行引用(简化) SpringBoot是框架的框架 核心spring jar包冲突的问题严重 A.jar!>5.1jar b.jar!>>4.8jar SpringBoot项目:官网将大部分框架在内部进行了整合, 解决了jar包冲突问题,制定了统一的版本依赖信息 不用担心版本了 定义当前SpringBoot所有的版本号,不负责引用 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.3</version> <relativePath/> <!-- lookup parent from repository --> </parent> <!--组Id/项目名/版本号 作用:可以在本地仓库中地位项目 可以作为依赖项被其他项目引用 --> <groupId>com.jt</groupId> <artifactId>springboot_demo1</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot_demo1</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <!--按照需要引用jar包 2010 SSM需要手动大量配置 2015 省去繁琐配置文件《开箱即用》思想 SpringBoot思想 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <!--Spring的启动器 代表原来大量的配置文件--> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <!--测试--> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!-- 插件 spring-boot-maven-plugin 帮手build SpringBoot的打包 部署 发布需要依赖maven相关的api 不添加 直接影响项目的发布(部署到服务器) --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
实现思路:在远处进行hash计算,当数据下载到本地,需要再次校验.如果2此hash码相同则说明数据一致,否则数据被篡改。人脸识别,相同文件直接引用地址
pom.xml
Maven指令
clear删除target 删除.class文件 解决编译问题
install 项目发布 将。class 打包为。jar Target目录下和本地仓库中都有
validate 校验
Java项目发布的指令 (targrt目录下jar包)
- 进入jar包的根目录
- 说明: 通过
java -version
检查JDK是否配置正常. - 如果提示java不是内部命令 则环境变量配置一定有问题.
- 项目发布
- 命令:
java -jar xxx.jar
解决方法
打开windows下dos命令窗口 ,输入 netstat -ano|findstr + 端口号 例如
netstat -ano|findstr "8080"
如果出现 "netstat"不是内部或外部命令,也不是可运行的程序或批处理文件。
则右键我的电脑--属性---高级系统设置--环境变量---找到Path--编辑--新建
C:\WINDOWS\system64
重启dos命令窗口 ,输入 netstat -ano|findstr + 端口号
最后一列为PID,,PID为占用端口的进程号
taskkill -pid 8892 –f --杀死8892进程号
SpringBoot注解
@Value注解
有时需要动态的获取数据,不能直接写死在代码中, 如何处理???
编辑YML文件
#语法说明
## 语法1: 数据结构 key-value结构
## 语法2: 写法 key:(空格)value
## 语法3: yml文件 默认字符集是UTF-8编码 中文不乱码
## 语法4: yml文件 有层级效果 注意缩进
server:
port: 8080# SpringBoot启动时 默认加载yml文件
msg:
hello: "今天下雨,记得带伞~~"
package com.jt.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/car")
public class HelloController {
/*加载YML的配置文件,内部的kv结构加载
到spring维护的内存空间中*/
@Value("${msg.hello}")
private String msg;
@RequestMapping("/hello")
public String hello(){
return msg;
}
}