最后
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
五个功能分别是:
-
build-info:生成项目的构建信息文件 build-info.properties
-
repackage:这个是默认 goal,在
mvn package
执行之后,这个命令再次打包生成可执行的 jar,同时将mvn package
生成的 jar 重命名为*.origin
-
run:这个可以用来运行 Spring Boot 应用
-
start:这个在
mvn integration-test
阶段,进行Spring Boot
应用生命周期的管理 -
stop:这个在
mvn integration-test
阶段,进行Spring Boot
应用生命周期的管理
这里功能,默认情况下使用就是 repackage 功能,其他功能要使用,则需要开发者显式配置。
=============================================================
repackage 功能的 作用,就是在打包的时候,多做一点额外的事情:
-
首先
mvn package
命令 对项目进行打包,打成一个jar
,这个jar
就是一个普通的jar
,可以被其他项目依赖,但是不可以被执行 -
repackage
命令,对第一步 打包成的jar
进行再次打包,将之打成一个 可执行jar
,通过将第一步打成的jar
重命名为*.original
文件
举个例子:
对任意一个 Spring Boot 项目进行打包,可以执行 mvn package
命令,也可以直接在 IDEA
中点击 package
,如下 :
打包成功之后, target
中的文件如下:
这里有两个文件,第一个 restful-0.0.1-SNAPSHOT.jar
表示打包成的可执行 jar
,第二个 restful-0.0.1-SNAPSHOT.jar.original
则是在打包过程中 ,被重命名的 jar
,这是一个不可执行 jar
,但是可以被其他项目依赖的 jar
。通过对这两个文件的解压,我们可以看出这两者之间的差异。
=====================================================================
可执行 jar
解压之后,目录如下:
可以看到,可执行 jar 中,我们自己的代码是存在 于 BOOT-INF/classes/
目录下,另外,还有一个 META-INF
的目录,该目录下有一个 MANIFEST.MF
文件,打开该文件,内容如下:
Manifest-Version: 1.0
Implementation-Title: restful
Implementation-Version: 0.0.1-SNAPSHOT
Start-Class: org.javaboy.restful.RestfulApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Build-Jdk-Spec: 1.8
Spring-Boot-Version: 2.1.6.RELEASE
Created-By: Maven Archiver 3.4.0
Main-Class: org.springframework.boot.loader.JarLauncher
可以看到,这里定义了一个 Start-Class
,这就是可执行 jar
的入口类,Spring-Boot-Classes
表示我们自己代码编译后的位置,Spring-Boot-Lib
则表示项目依赖的 jar
的位置。
换句话说,如果自己要打一个可执行 jar
包的话,除了添加相关依赖之外,还需要配置 META-INF/MANIFEST.MF
文件。
这是可执行 jar 的结构,那么不可执行 jar 的结构呢?
我们首先将默认的后缀 .original
除去,然后给文件重命名,重命名完成,进行解压:
解压后可以看到,不可执行 jar
根目录就相当于我们的 classpath
,解压之后,直接就能看到我们的代码,它也有 META-INF/MANIFEST.MF
文件,但是文件中没有定义启动类等。
Manifest-Version: 1.0
Implementation-Title: restful
Implementation-Version: 0.0.1-SNAPSHOT
Build-Jdk-Spec: 1.8
Created-By: Maven Archiver 3.4.0
注意
最后
小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
开源分享:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】
程序员代码面试指南 IT名企算法与数据结构题目最优解
这是” 本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近200道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。 “刷”完本书后,你就是“题王”!
《TCP-IP协议组(第4版)》
本书是介绍TCP/IP协议族的经典图书的最新版本。本书自第1版出版以来,就广受读者欢迎。
本书最新版进行」护元,以体境计算机网络技不的最新发展,全书古有七大部分共30草和7个附录:第一部分介绍一些基本概念和基础底层技术:第二部分介绍网络层协议:第三部分介绍运输层协议;第四部分介绍应用层协议:第五部分介绍下一代协议,即IPv6协议:第六部分介绍网络安全问题:第七部分给出了7个附录。
Java开发手册(嵩山版)
这个不用多说了,阿里的开发手册,每次更新我都会看,这是8月初最新更新的**(嵩山版)**
MySQL 8从入门到精通
本书主要内容包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL 函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与还原、MySQL 日志、性能优化、MySQL Repl ication、MySQL Workbench、 MySQL Utilities、 MySQL Proxy、PHP操作MySQL数据库和PDO数据库抽象类库等。最后通过3个综合案例的数据库设计,进步讲述 MySQL在实际工作中的应用。
Spring5高级编程(第5版)
本书涵盖Spring 5的所有内容,如果想要充分利用这一领先的企业级 Java应用程序开发框架的强大功能,本书是最全面的Spring参考和实用指南。
本书第5版涵盖核心的Spring及其与其他领先的Java技术(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的集成。本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。
JAVA核心知识点+1000道 互联网Java工程师面试题
企业IT架构转型之道 阿里巴巴中台战略思想与架构实战
本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。
16)]