4. 什么是应用服务器? - JavaEE基础系列
本文是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日
4. 什么是应用服务器? - JavaEE基础系列的更多相关文章
- 3. 什么是JSR参考实现? - JavaEE基础系列
本文是JavaEE基础系列的第三节. Java EE简介 - JavaEE基础系列 JSR简介 - JavaEE基础系列 上一节中, 我们介绍了什么是JSR.JSR就是一个提交到JCP的抽象请求,包含 ...
- 2.JSR简介 - JavaEE基础系列
JSR, Java Specification Request, Java规范请求; 也有的地方翻译为Java规范提案. 在前面的文章 1. Java EE简介 - JavaEE基础系列中, 简要介绍 ...
- 1. Java EE简介 - JavaEE基础系列
什么是Java EE? 真的是你理解的那样吗? Java EE, 原名J2EE, 其核心由一系列抽象的标准规范所组成, 是针对目前软件开发中所普遍面临问题的解决方案. 注意以上定义中的"抽象 ...
- javaEE基础08
javaEE基础08 一.继承 特点:继承父类的属性和方法,单继承(多继承) 特性:方法的复写(重写) 比如:人可以养狗 人------>狗:整体和部分(拥有)关系 关键字:extends 结构 ...
- 【Basics of Entity Framework】【EF基础系列1】
EF自己包括看视频,看MSDN零零散散的学了一点皮毛,这次打算系统学习一下EF.我将会使用VS2012来学习这个EF基础系列. 现在看看EF的历史吧: EF版本 相关版本特性介绍 EF3.5 基于数据 ...
- C#基础系列——Attribute特性使用
前言:上篇 C#基础系列——反射笔记 总结了下反射得基础用法,这章我们来看看C#的另一个基础技术——特性. 1.什么是特性:就博主的理解,特性就是在类的类名称.属性.方法等上面加一个标记,使这些类.属 ...
- C#基础系列——小话泛型
前言:前面两章介绍了C#的两个常用技术:C#基础系列——反射笔记 和 C#基础系列——Attribute特性使用 .这一章来总结下C#泛型技术的使用.据博主的使用经历,觉得泛型也是为了重用而生的,并且 ...
- C#基础系列——委托实现简单设计模式
前言:上一篇介绍了下多线程的相关知识:C#基础系列——多线程的常见用法详解,里面就提到了委托变量.这篇简单介绍下委托的使用.当然啦,园子里面很多介绍委托的文章都会说道:委托和事件的概念就像一道坎,过了 ...
- C#基础系列——委托和设计模式(二)
前言:前篇 C#基础系列——委托实现简单设计模式 简单介绍了下委托的定义及简单用法.这篇打算从设计模式的角度去解析下委托的使用.我们知道使用委托可以实现对象行为(方法)的动态绑定,从而提高设计的灵活性 ...
随机推荐
- 20145335郝昊《java程序设计》第9周学习总结
20145335郝昊 <Java程序设计>第9周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用于执行S ...
- kernel command line 参数详解
Linux内核在启动的时候,能接收某些命令行选项或启动时参数.当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核. 如果不使用启动管 ...
- (转)C#调用C函数(DLL)传递参数问题
备忘: 1.C函数参数为字符串char*.如果是入参,对应C#中string或StringBuilder:如果是出参对应C#中StringBuider: 2.C函数参数为结构体指针,需在C#中对应定义 ...
- SpringBoot集成Mybatis-PageHelper分页工具类,实现3步完成分页
在Mybatis中,如果想实现分页是比较麻烦的,首先需要先查询出总的条数,然后再修改mapper.xml,为sql添加limit指令. 幸运的是现在已经不需要这么麻烦了,刘大牛实现了一个超牛的分页工具 ...
- js去除前后空格
<script language="javascript"> String.prototype.trim=function(){ return this.rep ...
- 【Semantic Segmentation】DeepLab V3(转)
原文地址:DeepLabv3 代码: TensorFlow Abstract DeepLabv3进一步探讨空洞卷积,这是一个在语义分割任务中:可以调整滤波器视野.控制卷积神经网络计算的特征响应分辨率的 ...
- $.extendGit 丢弃所有本地修改的方法
git checkout . #本地所有修改的.没有的提交的,都返回到原来的状态 git stash #把所有没有提交的修改暂存到stash里面.可用git stash pop回复. git rese ...
- AJAX的例子
var XMLHttpReq; //根据不同的浏览器创建不同的XMLHttpRequest对象function createXMLHttpRequest() { if (window.XMLHttp ...
- 定时模块app_timer用法及常见问题—nRF5 SDK模块系列二
app_timer是大家经常用到的一个库,app_timer的功能就是定时,也就是说,你在某一时刻启动一个app timer并设定超时时间,超时时间一到,app_timer就会回调timeout ha ...
- Warsaw U Contest Petrozavo dsk Summer 2011 Training Camp, Monday, September 5, 2011
Warsaw U Contest Petrozavo dsk Summer 2011 Training Camp, Monday, September 5, 2011 Problem A.Chocol ...