什么是spring boot
一个用于spring项目的有主见的运行时
支持不同的项目类型,列入web和bath
帮助处理大多数低级的,可预测的设置
它不是插件,也不是代码生成器
优点
为所有spring开发提供更快,更广泛的入门体验
开箱即用,需要自定义启动项时,可以快速搭建
提供一系列项目的大类所共有的非功能性功能:嵌入式服务器,安全性,度量,运行状况检查和外部化配置等
代替管理依赖,对依赖管理提供支持
jar包整合,maven管理
spring boot 的pom继承关系
定义了关键依赖的版本
内部使用dependencyManagement 部分
通过spring-boot-dependencies 作为一个父级
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
</parent>
添加jar包
//jar包的集合
<dependencies>
//导入的jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
程序员的操守:
1.路径中没有中文,空格,等特殊字符
2.中文对C语言有致命的影响
jar仓库
远程仓库:官方维护了几乎所有的jar包(版权问题)
镜像仓库:国内的的仓库
本地仓库:用户本地的仓库
settings:
<!--阿里私服地址-->
<mirror>
<id>ali</id>
<name>ali Maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public/</url>
</mirror>
报错:
版本号报错,手动添加版本号
SHA(Secure Hash Algorithm 1)安全散列算法。是一种”密码散列函数“,由美国国家安全局设计发布为联邦数据处理标准(PIPS).SHA1可以生成一个消息“摘要”的160位(20字节)散列值,散列值通常呈现为“40个16进制数”
如果数据相同,采用相同的hash函数,值是否相同?————必然相同
常见hash编码,是多少位16进制数?————8位16进制数
1KB的数据和1GB的数据,hash谁快?————一样快
数据相同则hash码一定相同,hash码相同,数据不一定形同(hash碰撞,不同的数据可能含有相同的编码,数据量是有限的,但是数据是无限的)
如何降低碰撞概率?增大hash的长度,
SpringBook框架的标签及相关作用:
<?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>
<!--springbook的框架信息,将父类的内容进行引用,Springboot是框架的框架
问题:jar包冲突问题严重
springboot:将大部分框架在内部进行了整合,并制定统一的版本信息
paernt标签作用:管理当前SpringBoot所有依赖的jar包版本号
-->
<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>
<!--按需导入
历史说明:2010原来SSM需要手动的编辑大量的配置文件
思想:springboot体现了“开箱即用”的思想,方便了程序员的编写
-->
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<!-- spring的启动器,包含大量的spring配置文件拿来就用-->
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<!-- spring的test测试类的启动器,包含大量的spring配置文件拿来就用-->
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!--build标签,不影响项目的执行
但是springbook项目在打包部署的时候,需要依赖moven工具API,
如果没有该插件,将会影响项目的发布
最终打包生成文件时只会打包当前文件,不会生成文件,无法正常执行,
报错:XXX.jar中没有主清单
-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Maven指令
clean:删除target文件,删除编译后的文件(target目录,.java源码,.jar包XXX.class文件)
用法:当可能出现编译问题时,使用clean。 或项目打包前。
install;项目发布,将XXX.class文件打包位XXX.jar
jar包位置:target目录下,本地仓库中
打包报错错误一定在设置中Maven中
Java的项目发布命令:点击install命令,将程序打包。使用cmd进入jar包位置
使用java -jar XXX.jar运行jar包程序
关闭任务管理器关闭进程
如果任务管理器结束没有正确的关闭程序:
那么使用一下方法关闭端口进程:
1.打开cmd命令窗口,输入命令:netstat -ano | findstr 8080
,根据端口号查找对应的PID。结果如下:
发现8080端口被PID(进程号)为2188的进程占用。
2.根据PID找进程名称,输入命令:tasklist | findstr 2181
,发现是占用8080端口的进程为:javaw.exe。
3.根据PID结束对应进程。输入命令taskkill -PID 2188 -F
,强制关闭PID为2188的进程。
关于dos命令窗口锁定问题
当通过dos命令 启动tomcat服务器时,,可能由于误操作“锁定”当前dos窗口
ctrl+c
TAB键:自动补齐