Spring Core:Spring的核心组件,提供IOC、AOP等基础功能,是Spring全家桶的基础。
Spring Boot:一个基于Spring Framework的快速开发框架,可以快速创建独立的、生产级别的Spring应用程序。
Spring Cloud:一个用于构建分布式应用程序的框架,提供了诸如服务发现、配置管理、负载均衡等功能。
Spring Data:用于简化数据访问层开发的框架,提供了一系列数据访问模板和持久化技术的集成。
Spring Security:一个用于处理应用程序安全的框架,提供了认证、授权、安全防护等功能。
Spring Integration:Spring Integration是一个用于构建企业级集成解决方案的框架,支持将不同的应用程序和服务集成到一起。它提供了许多组件和模式,如消息通道、消息端点、消息路由器、过滤器等。
Spring Batch:Spring Batch是一个用于处理大量数据和批处理作业的框架。它提供了各种工具和组件,如任务启动器、作业仓库、作业执行器、步骤处理器、读写器等。
Spring Web Services:Spring Web Services是一个用于构建基于SOAP协议的Web服务的框架。它提供了各种组件和工具,如消息处理器、绑定器、端点等,使得构建Web服务更加容易。
Spring Boot 2X
Spring Boot 2.0在2018年2月28日发布,Spring Boot 2.7是2.x的最后一个发布版本最后一个支持 JDK 8 的版本,该版本的开源将于2023年11月停止支持,商业支持可延长到2025年2月。
Spring Boot 3X
Spring Boot 3.0于2022年11月24日发布,它是Spring Boot的下一个大版本,基于Spring Framework 6.0,而且要求Java最低版本为Java17。
Spring Framework 6.0于2022年11月16日发布,是Spring Framework的下一个大版本,该版本要求Java最低版本为Java17。
jar包是java项目压缩包,通过java程序(JavaSE)压缩产生的压缩包。
根目录
|
|---- 该包的 java 类文件目录
|
|---- META-INF 目录 // 存放该包和扩展的配置数据
#1、直接启动: java -jar demo.jar
这种启动方式适合自己测试,部署在Linux上,关闭会话窗口或者ctrl+c都会关闭Java
#2、后台启动:java -jar demo.jar &
这种方式会在后台静默运行,关闭会话窗口会中断Java,和上一种一样,这两个日志都是打印在窗口的,关闭会话就没了
#3、nohup启动:nohup java -jar demo.jar &
这种会把日志打印到nohup.out文件中,但只会打印标准输出不会打印错误输出,关闭通过pid号来kill掉
#4、nohup启动:nohup java -jar demo.jar>/root/demo.log 2>&1 &
这种会把普通输出和错误输出都打印到demo.log中
#5、需要打印控制台日志,需要保留之前的日志信息
nohup java -jar test.jar >> ./info.log &
web项目压缩包,可直接运行的web模块,部署到Web容器(如 tomcat)中。
war包 包含项目所东西:
代码编译成的 class 文件
依赖包
配置文件
网站页面(html、jsp、servlet、图片文件等)
war包放在tomcat的\webapps\ 目录下,启动 Tomcat,war包就会自动解压运行。
根目录
|
|---- .html、.jsp (或包含这两种文件的目录)
|
|---- WEB-INF 目录 // 存放 .class 文件和配置文件
| |
| |---- web.xml // 该应用的配置文件
| |
| |---- classes 目录
| | |
| | |---- 编译好的 servlet 类和 js
| | |
| | |---- servlet 所依赖的其他类(如 JavaBean)
| |----- lib // 存放该包的依赖 jar 包
|
|---- META-INF 目录 // 存放该包和扩展的配置数据
Maven 基于 Java 的项目管理工具。
helloMaven:项目名,包含 src 文件夹和 pom.xml。
src/main/java:用于存放项目的 Java 文件。
src/main/resources:用于存放项目资源文件。
src/test/java:用于存放所有测试 Java 文件,如 JUnit 测试类。
src/test/resources :用于存放测试资源文件。
target:项目输出位置,用于存放编译后的文件。
pom.xml:Maven 项目核心配置文件。
唯一的字符串,表示资源。
***
***
***
***
groupId: 项目组 ID,定义当前 Maven 项目隶属的组织或公司,通常是唯一的。一般是项目所属公司或组织的网址或 URL 的反写,例如 net.biancheng.www。
artifactId: 项目 ID,通常是项目的名称。
version:版本。
packaging:项目的打包方式,默认值为 jar。
classifier:帮助定义构建输出的一些附属构件,不直接定义项目的classifier,由附加插件帮助生成。
javax.servlet
servlet-api
2.5
provided
groupId、artifactId 和 version:依赖的基本坐标,任何一个依赖基本坐标是最重要的,Maven 根据坐标找到需要的依赖。
type:依赖的类型,对应于项目坐标定义的 packaging。大部分情况下,该元素不必声明,其默认值是 jar。
scope:依赖的范围。
optional:标记依赖是否可选。
exclusions:用来排除传递性依赖。
compile:编译依赖范围,默认的。编译、测试、运行的时候都要用到这个依赖。
test:测试依赖范围。只有在编译测试代码 + 运行测试代码的时候才需要;
provided:已提供依赖范围。编译和测试时使用,运行时无效;
runtime:运行时依赖范围。测试和运行时有效,编译主代码时无效;
system:系统依赖范围。与provided一致,与本机是强绑定,会导致不可移植,慎用,systemPath中可以引用环境变量。
import:导入依赖范围。
mvn clean:清理
mvn compile:编译src/main/java目录中的程序,把Java编程成class文件,并放到target/classes目录中
mvn test-compile:编译src/main/test目录下的Java程序,拷贝到target/test-class目录中
mvn test:进行单元测试,使用Junit测试src/main/java目录下的程序是否符合要求
mvn package:打包。把程序中src/main/test下面的Java编译后的class和resources中的配置文件放入到一个压缩包中。
mvn install:把jar、war安装到本机仓库中
存放物品:存放Jar、Maven的插件等等。
本地仓库,可以在maven安装目录/conf/settings.xml中指定。
中央仓库:最权威的,所有的资源都放在这里。
中央仓库的镜像:分担压力的。
私服:公司局域网内部使用的,就是公司自己开发的。
项目的构建过程:清理、编译、测试、报告、打包、安装、部署
Maven提供的功能,用来执行清理、编译、测试、报告、打包的程序。
要在项目中额外创建一个聚合模块,通过这个模块构建整个项目的所有模块。
助聚合其他模块的工具,其本身并无任何实质内容,因此聚合模块中只有一个 POM 文件。
聚合模块的打包方式(packaging)也是 pom,用户可以在其 POM 中通过 modules 下的 module 子元素来添加需要聚合的模块的目录路径。
4.0.0
net.biancheng.www
Root
1.0
pom
UTF-8
1.2.17
4.9
1.0
5.1.18
0.9.1
log4j
log4j
${log4j.version}
junit
junit
${junit.version}
mysql
mysql-connector-java
${mysql.connector.version}
runtime
c3p0
c3p0
${c3p0.version}
../App-Core-lib
../App-Data-lib
../App-UI-WAR
在父模块 POM 中声明依赖,其他模块的 POM 可通过继承父模块的 POM 来获得对相关依赖的声明。消除子模块 POM 中的重复配置,父模块 POM 的打包类型(packaging)必须是 pom。
父模块 POM 配置
4.0.0
net.biancheng.www
Root
1.0
pom
junit
junit
4.9
test
mysql
mysql-connector-java
5.1.18
runtime
c3p0
c3p0
0.9.1
子模块 POM 配置
4.0.0
net.biancheng.www
App-Core-lib
1.0
net.biancheng.www
Root
1.0
../Root
log4j
log4j
1.2.17