Maven
Maven是一种项目构建工具,能够把项目抽象成POM(Project Object Model),Maven通过POM对项目进行构建、打包、文档化等操作。最重要的是解决了项目需要类库的依赖管理,简化了项目开发环境搭建的流程,使得开发一个简单到复杂的大型项目变得容易。
Maven常用标签
- groupID:项目所属的组
- artifactID:项目唯一的标识
- packaging:项目类型,项目打包的方式
- version:项目版本号
- modelVersion:项目所用Maven版本
- dependencies:项目所有的依赖
- dependency:dependencies下的单个依赖
- scope:依赖的类库与项目的关系,分为compile、test、provided、runtime。
- build:辅助构建项目所有的插件
- plugins:辅助构建项目所有的插件
- plugin:辅助项目构建的单个插件
Maven常用指令
- mvn compile 编译工程
- mvn package 编译并打包工程
- mvn install 打包并安装到本地仓库
- mvn deploy 打包并安装到远程仓库
- mvn clean 清除target目录
Spring
Java EE是企业应用需求的体现,Spring则是基于企业应用并非全是分布式这一前提,简化了Java EE的开发。
- Spring的奠基作者Rod Johnson在2003年出版的《Expert One-On-One Java EE Design and Development》一书中首次提到Spring框架。
- 2004年,Spring框架推出了IOC(控制反转)和AOP(面向切片编程),使得Spring成为非常受欢迎的框架,成为企业应用开发的一种轻量级选择。
- 2005年,Spring成立独立公司,专门维护Spring框架的开发。
- 目前Spring已经成为庞大的开源工具包含:
- Spring Framework
- Spring Boot
- Spring Data
- Spring Cloud
服务器软件
服务类别
- 静态服务:一般返回静态资源,不同用户在任意时间访问同一个服务返回的内容均相同
- 动态服务:一般返回动态资源,不同用户由于身份及权限不同返回的数据也不同
服务器类别
- Web服务器:最为宽泛的概念,可以响应用户请求,提供服务。
- Http服务器:通过http协议将服务器上的资源传输给客户端。
- 应用服务器:一个特定应用的承载容器,一般需要特定的运行时环境支持(例如Tomcat需要Java runtime环境支持)。能根据不同用户的请求,正确返回对应的资源,因此应用服务器常被称作应用容器、Web容器、动态容器。
常见服务器软件
Nginx
- 基于C语言编写的稳定性高的高性能服务器
- 原本工作是作为Http静态服务器,将服务器的静态内容或资源通过Http协议传输给客户端
- 目前常被用于反向代理、负载均衡服务器,接收请求后转发给Tomcat等应用服务器进行处理。
Tengine
阿里基于Nginx针对大流量网站优化后的应用服务器
Apache
- 功能上与Nginx服务器相同
- 并发度、稳定性逊色于Nginx服务器
IIS
- 微软公司开发的闭源服务器
- 仅能运行在Windows平台
- 常用作Http静态服务器,但也支持ASP.NET作为应用服务器,因此可看作具有动态服务器能力的Http服务器
Tomcat
- 是Java EE应用服务器软件,运行时需要Java runtime运行环境
- 是Spring Boot内嵌的默认应用服务器
- 常被用来与Nginx进行配合
Jetty
- 既支持静态服务,也支持动态服务,还支持Http2.0等
- 是Spring Boot内嵌的非默认应用服务器
Undertow
- RedHat基于Java编写的应用服务器
- 是Spring Boot内嵌的非默认应用服务器
JBoss&WildFly
- 重量级服务器软件
- RedHat维护开发,内置的默认应用服务器为Undertow
Weblogic
- 遵守很多Java EE标准和规范的重量级服务器软件
WebSphere
- 遵守众多Java EE标准和规范的重量级服务器软件