本文是JavaEE基础系列的第四节。
上一节介绍了什么是JSR参考实现。 Java EE简介 文中提到, JavaEE 是一系列抽象的规范, 现在, 每个版本的 JavaEE 都由一个 JSR 定义, 这相当于是 JSR 的组合, 其中包括了多个JSR。
例如,Java EE 7 对应于 JSR 342。 Java EE 8 对应于 JSR 366。 由此可见 Java EE 自身也是一项通过JCP严格审核的JSR。
我们知道, 每个JSR都必须有参考实现。
Java EE 也是一样的, 它的实现被称为 应用服务器 (application server
). 应用服务器本质上是Java EE规范的具体实现, 可以执行/驱动 JavaEE 项目. Java EE 的参考实现是 Glassfish Application Server。
应用服务器将程序开发中的很多东西抽象出来, 如数据量连接池(datasource pooling)、缓存(caching)、集群(clustering) 等等。
通常应用服务器也必须通过相关的TCK验证。这是 Java EE 可移植性的基础. 作为开发人员, 您的JavaEE代码应该依赖 javax.*
, 这是Java EE 的标准 package 命名空间。
既然应用服务器都遵循标准, 那么理论上, 互相之间可以无缝切换, 而不需要修改代码. 仔细想想这真的很强大。
遵守规范有什么好处呢? 你不会被绑死在某款应用服务器上面. 可以根据具体需求进行更换, 想用哪家就用哪家。
市面上有很多应用服务器, 有些是免费的、另一些则非常昂贵。 一款流行的开源服务器是 Payara Server, 它是 Glassfish 的一个分支, 可以免费下载和使用。
总结一下: Java EE 是种抽象的规范, 其具体实现是应用服务器(application server). 参考实现是 Glassfish。
近年来, 微服务非常火爆, 有一种观点认为, Java EE应用服务器并不适用于微服务。我们将在下一节中进行讨论。
原文链接: https://pedanticdevs.com/2017/06/java-ee-fundamentals-what-is-an-application-server.html
原文日期: 2017年06月29日
翻译日期: 2017年07月07日