一、Servlet
Servlet需要在web应用中运行,本身不能独立运行,web应用通常是部署在tomcat中,开发Servlet的步骤:创建web应用项目-->编写servlet代码-->部署到tomcat当中。
二、maven高级功能
1、分模块设计与开发
设计java项目时,将java项目分为多个模块进行开发,便于项目的管理和后期维护,也方便模块间的相互调用、资源共享。被拆分的模块需要使用时只需引入相应的依赖即可。(实体类中只用到了lomboka依赖)
分模块开发需要先针对模块进行设计,再进行编码,不会先将工程开发完毕在进行拆分。
2、继承与聚合
继承--简化依赖配置,统一管理依赖
描述的是两个工程间的关系,与Java中的继承相似,子工程可以继承父工程中的配置信息,常指的是依赖关系的继承。
maven的父工程其打包方式pom(默认是jar),使用<packaging>pom</package>标签指定打包方式,同时自己创建的父工程需要继承spring boot项目的父工程spring-boot-starter-parent,然后让各个分离的子工程继承自己创建的父工程,在子工程中通过<parent>...</parent>表明父工程的坐标,标签中使用<relativePath>...</relativePath>说明父工程pom文件的相对位置(不指定的话就会从本地仓库/远程仓库查找该工程)。
在子工程中,配置了继承关系后,表中的groupID可以省略掉
maven中常见的打包方式:
jar: 普通模块打包,springboot项目基本都是jar包(内嵌tomcat运行)
war: 普通web程序打包,需要部署在外部的tomcat服务器中运行
pom: 父工程或聚合工程,该模块不写代码,仅进行依赖管理
版本锁定:
在父工程的pom文件中通过<dependencyManagement>统一管理依赖版本。子工程引入依赖时,无需指定<version>版本号,父工程统一管理。变更依赖版本,只需要在父工程中统一管理。
<dependencyManagement>与<dependencies>区别:
<dependencies>时直接依赖,在父工程配置了依赖,子工程会直接继承下来
<dependencyManagement>是统一管理版本依赖,不会直接依赖,还需要再子工程中引入所需依赖(但无需指定版本)
自定义属性/引用属性,集中维护项目所依赖的资源的版本
聚合--用于快速构建项目
- 将多个模块组成一个整体,同时进行项目的构建,无需根据依赖关系手动构建,直接在聚合工程上构建,实现项目的方便打包、编译、安装等,实现聚合功能需要一个不具有任何业务功能的空工程,有且仅有一个pom文件的聚合工程。
实现:聚合工程通常也是继承当中的父工程,通过<modules>标签设置当前聚合工程所包含的子模块名称,其中模块的书写顺序不影响项目构建,在构建时,会自动根据模块间的依赖关系设置构建顺序。
总结--继承与聚合异同点:
相同点:
- 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中;
- 继承与聚合均属于设计型模块,并无实际的模块内容
不同点:
- 聚合是在聚合工程中配置关系,聚合可以感知到参与到聚合的模块有哪些
- 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
3、私服
私服是一种特殊的远程仓库,是架设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步问题。
依赖的查找顺序:本地仓库-->私服-->中央仓库
私服的上传与下载: