说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Java EE 8愿望清单:缺少这些,Java EE将不会完美

HTML文档下载 WORD文档下载 PDF文档下载
Java EE 7已于6月中旬正式发布,尽管新平台包含了诸多新的特性,但是开发者对此似乎并不满足,他们期待未来的版本Java EE 8中能够包含更完善的特性,比如更大的CDI应用范围、标准的缓存API、现代化的安全框架等。

Java EE 7已于6月中旬正式发布,新版本提供了一个强大、完整、全面的堆栈来帮助开发者构建企业和Web应用程序——为构建HTML5动态可伸缩应用程序提供了支持,并新增大量规范和特性来提高开发人员的生产力以及满足企业最苛刻的需求。


下面的这个图表包含了JavaEE 7中的各种组件。橙色部分为Java EE中新添加的组件。


尽管新的平台包含了诸多新的特性,但是开发者对此似乎并不满足,尽管他们中的大部分还没有迁移到Java EE 7(或许是由于Java EE 7的特性还不完善),但是这并不影响他们对于Java EE 8特性的设想。

比如,在Java EE 6发布(2009年12月10日发布)后,开发者Antonio Goncalves认为该版本并没有解决一些问题,因此写了一个希望在Java EE 7中包含的特性清单。有趣的是,他写的4个特性中,其中有2个(flows和batch)已经包含在Java EE 7中了,而第3个特性(caching)原本也计划包含其中,但由于开发进度关系,在Java EE 7最终发布前被舍弃。

此举促使开发者Arjan Tijms也写了一个他希望在Java EE 8中出现的特性清单,如下。

  1. 无处不在的CDI(Contexts and Dependency Injection forJava EE,上下文与依赖注入)
  2. 更深入的Pruning(修剪)和Deprecating(弃用)
  3. 一个标准的缓存API
  4. administrative objects(管理对象)的应用内替代品
  5. 综合的现代化的安全框架
  6. 平台范围内的配置

下面就来详细阐述这些特性的必要性。

1.  无处不在的CDI

实际上这意味着2种不同的东西:使CDI可以用在目前不能用的其他地方、基于CDI来实现和改造其他规范中的相关技术。

a. 使CDI可以用在其他地方

与Java EE 6相比,Java EE 7中的CDI的适用范围已经扩大了很多,比如CDI注入现在可以工作在大多数JSF组件(artifacts)中,比如基于bean validation的约束验证器。不幸的是,只是大部分JSF组件,并非所有的,比如转换器和验证器就不行,尽管OmniFaces 1.6将支持这些特性,但最好是在Java EE 7中能够开箱即用。

此外,Java EE 7中的CDI也没有考虑到JASPIC组件,在此之中注入操作将无法工作。即使http请求和会话在Servlet Profile SAM中可用,但是当SAM被调用时,相应的CDI作用域也不会被建立。这意味着它甚至不能通过bean管理器以编程方式来检索请求或会话bean作用域。

还有一种特殊情况是,各种各样的平台artifacts可以通过一些替代的注解(如@PersistenceUnit)来注入,但早期的注入注解(@Resource)仍然需要做很多事情,比如DataSource。即使Java EE 7中引入了artifacts(如任务调度服务),但也不得不通过“古老”的@Resource来注入,而不是通过@Inject。

b. 基于CDI来实现和改造其他规范中的相关技术

CDI绝对不应该只专注于在其他规范中已经解决的那些问题,其他规范还可以在CDI之上来实现它们各自的功能,这意味着它们可以作为CDI扩展。以Java EE 7中的JSF 2.2为例,该规范中的兼容CDI的视图作用域可作为CDI扩展来使用,并且其新的flow作用域也可被立即实现为CDI扩展。

此外,JTA 1.2现在也提供了一个CDI扩展,其可以声明式地应用到CDI托管的bean中。此前EJB也提供了类似的功能,其背后技术也使用到了JTA,但是声明部分还是基于EJB规范。在这种情况下,可以通过JTA来直接处理其自身的声明性事务,但是这需要在CDI之上进行。

尽管从EJB 3版本开始,EJB beans已经非常简单易用了,同时还相当强大,但问题是:CDI中已经提供了组件模型,EJB beans只是另一个替代品。无论各种EJB bean类型有多么实用,但是一个平台上有2个组件模型,容易让用户甚至是规范实现者混淆。通过CDI组件模型,你可以选择需要的功能,或者混合使用,并且每个注解提供了额外的功能。而EJB是一个“一体”模式,在一个单一的注解中定义了特定的bean类型,它们之间可以很好地协同工作。你可以禁用部分不想使用的功能。例如,你可以关闭bean类型中提供的事务支持,或者禁用@Stateful beans中的passivation,或者禁用@Singleton beans中的容器管理锁。

如果EJB被当做CDI的一组扩展来进行改造,可能最终会更好。这样就会只有一个组件模型,并且具有同样有效的功能。

这意味着EJB的服务,如计时器服务(@Schedule、@TimeOut)、@Asynchronous、@Lock、@Startup/@DependsOn和@RolesAllowed都应该能与CDI托管的bean一起工作。此外,现有EJB bean类型提供的隐式功能也应该被分解成可单独使用的功能。比如可以通过@Pooled来模拟@Stateless beans提供的容器池,通过@CallScoped来模拟调用@Stateless bean到不同的实例中的行为。

2.  更深入的Pruning(修剪)和Deprecating(弃用)

在Java EE平台中,为数众多的API可能会令初学者不知所措,这也是导致Java EE如此复杂的一个重要原因。因此从Java EE 6版本开始就引入了Pruning(修剪)和Deprecating(弃用)过程。在Java EE 7中,更多的技术和API成为了可选项,这意味着开发者如果需要,还可以包含进来。

比如我个人最喜欢的是JSF本地托管bean设施、JSP视图处理程序(这早在2009年就被弃用了),以及JSF中各种各样的功能,这些功能在规范文件中很长一段时间一直被描述为“被弃用”。

如果EJB组件模型也被修剪将会更好,但这有可能还为时过早。其实最应该做的是继续去修剪EJB 2编程模型相关的所有东西,比如在Java EE 7中依然存在的home接口。

3.  一个标准化的缓存API

JCache缓存API原本将包含在Java EE 7中,但不幸的是,该API错过了重要的公共审查的最后期限,导致其没能成为Java EE 7的一部分。

如果该规范能够在JavaEE 8计划表的早期阶段完成,就有可能成为Java EE 8的一部分。这样,其他一些规范(如JPA)也能够在JCache之上重新构建自己的缓存API。

4.  所有管理对象(administrativeobjects)的应用内替代品

Java EE中有一个概念叫“管理对象(administrative objects)”。这是一个配置在AS端而不是在应用程序本身中的资源。这个概念是有争议的。

对于在应用服务器上运行许多外部程序的大企业而言,这可以是一个大的优势——你通常不会想去打开一个外部获得的应用程序来改变它连接的数据库的相关细节。在传统企业中,如果在开发人员和操作之间有一个强大的分离机制,这个概念也是有益的——这可以在系统安装时分别设置。

但是,这对于在自己的应用服务器部署内部开发的应用程序的敏捷团队来说,这种分离方式是一个很大的障碍,不会带来任何帮助。同样,对于初学者、教育方面的应用或者云部署来说,这种设置也是非常不可取的。

从Java EE 6的@DataSourceDefinition开始,许多资源(早期的“管理对象”)只能从应用程序内部被定义,比如JMSDestinations、email会话等。不幸的是,这并不适用于所有的管理对象。

不过,Java EE 7中新的Concurrency Utils for Java EE规范中有明确的选项使得它的资源只针对管理对象。如果在Java EE 8中,允许以一个便携的方式从应用程序内部配置,那么这将是非常棒的。更进一步来说,如果Java EE 8中能够定义一种规范来明确禁止资源只能被administrative,那么会更好。

5.  综合的现代化的安全框架

在Java EE中,安全一直是一个棘手的问题。缺乏整体和全面的安全框架是Java EE的主要缺点之一,尤其是在讨论或评估竞争框架(如Spring)时,这些问题会被更多地提及。

并不是Java EE没有关于安全方面的规定。事实上,它有一整套选项,比如JAAS、JASPIC、JACC、部分的Servlet安全方面的规范、部分EJB规范、JAX-RS自己的API,甚至JCA也有一些自己的安全规定。但是,这方面存在相当多的问题。

首先,安全标准被分布在这么多规范中,且并不是所有这些规范都可以用在Java EE Web Profile中,这也导致难以推出一个综合的Java EE安全框架。

第二,各种安全API已经相当长一段时间没有被现代化,尤其是JASPIC和JACC。长期以来,这些API只是修复了一些小的重要的问题,从来没有一个API像JMS 2一样被完整地现代化。比如,JASPIC现在仍然针对Java SE 1.4。

第三,个别安全API,如JAAS、JASPIC 和JACC,都是比较抽象和低层次的。虽然这为供应商提供了很大的灵活性,但是它们不适合普通的应用程序开发者。

第四,最重要的问题是,JavaEE中的安全机制也遭遇到了“管理对象”中同样的问题。很长一段时间,所谓的Java EE声明式安全模型主要认证过程是在AS端按照供应商特定方式来单独配置和实现的,这再次让安全设置对于敏捷团队、教育工作者和初学者来说成为一件困难的事。

以上这些是主要的问题。虽然其中一些问题可以在最近的Java EE升级中通过增加小功能和修复问题来解决。然而,我的愿望是,能够在Java EE 8中,通过一个综合的和现代化的安全框架(尽可能地构建在现有安全基础上)将这些问题解决得更加彻底。

6.  平台范围内的配置

Java EE应用程序可以使用部署描述文件(比如web.xml)进行配置,但该方法对于不同的开发阶段(如DEV、BETA、LIVE等)来说是比较痛苦的。针对这些阶段配置Java EE应用程序的传统的方法是通过驻留在一个特定服务器实例中的“管理对象”来实现。在该方法中,配置的是服务器,而不是应用程序。由于不同阶段会对应不同的服务器,因此这些设置也会随之自动改变。

这种方法有一些问题。首先在AS端的配置资源是服务器特定的,这些资源可以被标准化,但是它们的配置肯定没有被标准化。这对于初学者来说,在即将发布的应用程序中进行解释说明比较困难。对于小型开发团队和敏捷开发团队而言,也增加了不必要的困难。

对于配置Java EE应用程序,目前有很多可替代的方式,比如在部署描述符内使用(基于表达式语言的)占位符,并使部署描述符(或fragments)可切换。许多规范已经允许指定外部的部署描述符(如web.xml中可以指定外部的faces-config.xml文件,persistence.xml中可以指定外部的orm.xml文件),但是没有一个统一的机制来针对描述符做这些事情,并且没有办法去参数化这些包含的外部文件。

如果Java EE 8能够以一种彻底的、统一平台的方式来解决这些配置问题,将再好不过了。似乎Java EE 8开发团队正在计划做这样的事情。这将会非常有趣,接下来就看如何发展了。

结论

Java EE 8目前尚处于规划初期,但愿上面提到的大多数特性能够以某种方式加以解决。可能“无处不在的CDI”的几率会大一些,此方面似乎已经得到了很大的支持,且事情已经在朝着这个方向发展了。

标准化缓存API也非常有可能,它几乎快被包含在Java EE 7中了,但愿其不会再次错过规范审查的最后期限。

此外,“现代化的安全框架”这一特性已经被几个Java EE开发成员提到,但是此方面工作尚未启动。这可能需要相当大的努力,以及大量其他规范的支持,这是一个整体性问题。顺便说一句,安全框架也是Antonio Goncalves关于Java EE 7愿望清单中的第4个提议,希望Java EE 8可以解决这一问题。

英文原文:Java EE 8 wish list

回到未来:最热门的十大清洁能源技术公司 深度学习:未来机器人的进化途径 搜狗开源内部项目管理系统Cynthia,已被数十家企业采用 沃游戏新版本全新登场 好友PK根本停不下来 腾讯发布首款智能硬件,内部筹建孵化器鼓励创新 触控开发者平台:孕育“十亿开发者俱乐部” 《近匠》大新伙伴:大姨吗防晒小助手,帮你呵护女神 专访阿里云总裁王文斌:做出“用得爽”的工程产品 专访AMD全球副总裁潘晓明:2014全线发力,力争中国市场 搜狗开源内部项目管理平台Cynthia意欲何为? 深度解析浪潮新八路服务器TS860 支持Box2D,开源HTML5 2D游戏引擎FLAG 一周消息树:从程序员到架构师的方法与逻辑 【CTO俱乐部走进海尔】海尔的转型探索之路 十一问MongoDB CTO,谈NoSQL人气王的扩展、事务及运维 腾讯“创业•密码”开发者论坛 ChinaJoy引爆创业者关注 从F1赛车到智能手机,无线充电技术之崛起 助力梦想!MDCC免费为优秀App开发团队提供展位 为Symfony2和Redis正名,基于PHP的10亿请求/周网站打造 【聚焦API】教你如何选择最适合的NLP API服务商? 直接改应用!Flipboard开源iOS应用内调试工具FLEX 专访腾讯游戏运营总经理崔晓春:云时代游戏运营的变革与创新 嵌入式专家Bruce Douglass经验谈 门票销售过半 从2014微信开发者大会购票者特征说起 当来自金星的Devs碰上火星的Ops——共话应用扩展 移动平台市场占有率:Android首次赶超iOS 豌豆荚范怀宇 I/O大会总结:Android无处不在 轻博客始祖Tumblr:哈希以支撑2.3万Blog请求/秒 《近匠》FIR.im:简单易用的内测分发工具 传苹果公司将于9月9日召开新一代iPhone发布会 近百家微信开发商参与征集评选活动 TOP10正浮出水面 新手问题,在线等! 内存大小是否会影响到网络速度? 谁来救我 ,SOS,求用C语言写的编译器 修改数据出错,不知为何? 等级考试的问题 请问能不能在不同用户登陆的情况来决定服务A是否启动。 关于还原精灵转储后win98不能启动的问题,请指教!~ 今天,我终于听到项目经理的一句内心话,让我们作为程序员感到一阵阵的寒心 请教一下 dll调试问题 怎样得到OnLButtonDown的point在整个屏幕上的坐标啊?谢谢 递归调用FindFirstFile、FindNextFile、FindClose的问题 页面调度有关的课程设计 关于client端与server端的连接问题 请问能不能在不同用户登陆的情况来决定服务A是否启动。 Textbox如何禁止它记忆以前曾经输入过的值? 我的XP的CPU经常占用90%以上,高手指点. 安装完win2000,又安装了天网防火墙,再安装SQL server 2000,快完成时启动服务警告“无法定位程序输入点” 急招深圳周边(含深圳).Net程序员 ??qustion Laney(6吨大肥猫) 快来啊^@^ 有关struts的<html:text>标签的问题!!!!!!!!!!!!!!!!!!!!!!! 为了考试挑灯夜读,遇到一个菜问题请大家帮忙! 哪位高手帮帮我!时间紧急! 关于还原精灵转储后win98不能启动的问题,请指教!~ 有几张漂亮图片,看看你的计算机是怎么累死的 求C++算法代码。 怎么实现在IE中将查找到的关键字用红色标记指示出来? 求C++算法代码。 请问哪里可以下载Numega DevPartenr Studio 测试工具 ㊣㊣ 什么也不多说了,帮忙给解决这个问题吧, 先多谢了!! ㊣㊣ 有个小小问题 寻找监测某端口的数据流量软件 都市幽灵·里面一定有宝藏 非常奇怪:为什么超链接无效? 显示异常 下个星期开始到新公司了,请大家给点经验,好吗 急!jsp+mysql,急寻blob输出方法!!! 修改记录问题 StringGrid的自画 导出 救命呀,关于XP的激活问题. 语句 请问有什么好的串口调试工具,可以模拟串口发送数据的??????? 简单问题高分相送 MessageBox.Show 方法需要什么样的名空间 使用ghost硬盘刻录硬盘怎么区分源盘和目标盘,请大虾详细说说,在线等 概念性问题(没办法,太笨了,见笑了) vf8支持动态SQL吗? 请问:如何单独安装BDE? 因为你无权连接数据库服务器?? 高一数学题目..不会 ..求解1.已知U=R,A{X∈R|1<X<4} B={X∈R|X≤-1 或 X≥3},求CuA和CuB2.已知全集U={0,2,a的平方+2a+3} A={0,2} CuA={1,2},求a的值3.已知集合A={X∈R| 1≤X≤5} B={X∈R| a≤X≤2a+1} 且A≥B,求a的 少昊、颛顼、帝喾、.尧、舜他们还有官名吗 感觉很简单,但是我就是不知如何下手 时光荏苒,怎么念 为什么希腊是现代科学精神的起源? 与象共舞 大象跳舞给人的感觉是什么 品读经典,完成下面的填空.1.《水浒》中的主要人物有:行者______,花和尚______,黑旋风______. 黄帝、颛顼、帝喾、尧、舜庙宇在什么地方 大学对于我们的意义,请谈谈你的看法吧! 世界的统一性问题中,何谓一元论?何谓二元论?如题,要确切.重点是一元论与二元论. The most chershed Thing in life is friendship The most precious thing Between us怎么翻译没什么难度吧! 对大学社团的看法 论述世界统一性原理是唯物一元论的前提和基础 Sincere forever,the friendship forevtr,the dearones forever,love forever ls 明珠散落的意思解释对了就好了~ 世界的统一性在于它的什么 小明先向东走了5米,又向西走了3米,一共向东走了多少米?如果规定向东的方向为正方向 对大学教学的看法?还有理想的大学教学是怎样的?大学教与学的灵魂? 高一数学题 谢谢了诶~1.如果loga2>logb2>0,那么( )A.1 电视上哪个频道讲有关天文的知识 6题..文科学霸请进……为什么c不对 高一数学诶……泪流满面求指导做前三道就好了 我承认我问题很多==请给详细解释 谢谢 关于天文的知识不少于8条字数不少于260字每条不一样 大概的相近词是什么 《大道之行也》全篇课文的断句 问下问数学题目说出来吧,我在此先谢谢了1e 东阳.为什么叫东阳 Mr Smith often helps the poor people.He is a man with a kind h_____________Mr Smith often helps the poor people.He is a man with a kind h_____________ 一人向东走20米,又向西走了30米,实际走了多少米?他此时的位置应在哪里? 浙江的东阳市有叫东阳商场的吗?想去那里进货. “三皇五帝”中为何把炎帝划分在“三皇”里,而黄帝划分在“五帝”里在中国通史远古时期传说中,黄帝和炎帝同为有典氏的儿子,都是很杰出很有名望的部落酋长,为什么“三皇五帝”里把黄 一位同学在一条由东向西的跑道上先向东走了20米又向西走了30米能否确定他现在的位置与原来位置相距多少米 晶莹剔透、水生喧腾,明珠散落的意思 世态炎凉鸡最懂,人情冷暖鸭先知. 三皇的“天皇”、“地皇”、“泰皇”,和“伏羲”、“神农”、“黄帝”.是一样的么?如题 一位同学在一条由东向西的跑道上,先向东走了20米又向西走了30米能否确定他现在的位置与原来位置相距多少米 翻译 企业文化我们企业是以位置相关的各种信息的应用与发展,维持与改善人类生活作为企业发展方向和坚定不移的目标.把位置相关的信息领域所取得的成就做为我们衡量一起活动的标准. 三皇中的“黄帝”与五帝中的“黄帝”是否一样? 某人向东走5米,又向西走5米,那么此人实际走了多少米?他的位置是在?请帮助帮助回答,谢谢!这道题我不知道该怎么写,请来帮助我把! 念天地之悠悠,独怆然而涕下.神木意思? 某天文观察者观看到下列现象,依据天体的相对位置判断,不可信的是.白天看到日食,同一天晚上看到月食为啥不对,日落后既看到火星又看到木星为啥对?跟剧天体的相对位置判断 某人向东走了20米,又向西走了30米,实际走了多少米?这是一个关于有理数的数学问题主要是要弄清实际说的是路程还是距离 翻译:念天地之悠悠,独怆然而涕下 关于天文星象的基础问题:是根据什么判断一个星次里边有二十八宿中的哪几个呢?比如说正月,如果在正月的时候观星,是在黄昏的时候太阳落山的西方出现的星宿属于娵訾吗?是我没有表达清 已知X十y=5⃣️Xy=2⃣️求(x-y)^2.x^4+y^4的值 在经济繁荣时期和萧条时期因怎样分别运用财政政策? Taking your measurements won't help when it comes to picking your size 若丨x-3丨+丨y-2丨=0,试求2x+y的值 如何提高学前教育经济效益 英语翻译when it comes to 一般在什么时候用的 若丨x丨=3,丨y丨=5,且丨x-y丨=-(x-y).求丨x-3丨+(y-5)²的值 怎么写学前教育专业学习情况? 黄帝姓公孙,根据司马迁史记记载,为何其孙,孙之孙颛顼和帝喾都姓高,即高阳和高辛. 已知丨x-2丨+丨y+2丨=0,求 x,y的值要用上初中因为所以的符号,具体点 这是科学,请学霸帮我,谢谢! 请从语法角度分析.The date marks the end of...the date marks the end of one of the periods of roughly 400 years into which the Mayan calender is divided. Your Personal Day of Death is... Tuesday, April 9, 2075 Seconds left to live...2,120,323,716 Delay Your Date of Death How Migraines Impact Quality of Life Gastroesophageal Reflux Disease: What You Should Know A Lack of Sleep or ADHD? 都是什么 为什么在发达的资本主义国家美国马列主义著作有一定的市场 能帮我翻译一下这个句子吗?at the end of an income year ending on the date of death Your Personal Day of Death is... Friday, August 8, 2081什么意思?Delay Your Date of Death The Phases of Migraines What to Expect When Getting an MRI Polycystic Ovary Syndrome: What You Should Know 这都啥意思? 妻子选总统 洪都拉斯被罢黜总统或可重美国男子冲浪遭遇鲨鱼 用拳击技巧击将马来西亚妇女操作轿车不当误撞死邻居7俄达吉斯坦地方官员遇袭身亡租客伪造房产证卖掉了房子 新\"房东浙江省新增1例人感染H7N9禽流感病美情报局局长指有关美监听事件部分报道日本长崎附近海域发现元朝军队沉船遗骸研究称美国人网购母乳风险高 75%或大型枪击案频发 美拟采新策略应对“活联合国官员称澳森林大火与该国废除碳税芬兰一研究人员拟通过拍摄关注当地避难奥巴马演讲时扶住快要晕倒的孕妇被疑做奥巴马演讲时扶住快要晕倒的孕妇被疑做两股台风同袭 日本气象台长获权发布紧美媒:美9月就业数据不佳为美联储政策英国乔治小王子教父母共7人 多为威廉劝诫移民\"回家\"广告被谴责 英政两股台风同袭 日本气象台长获权发布紧英国乔治小王子教父母共7人 多为威廉美军将撤离阿富汗 价值70亿美元军需明年起兰州供应国V标准车用汽、柴油河南济源:打造经济升级版要靠深化改革陕西西咸新区以“负面清单”规范市场准一小袋40克粉末能泡出8碗“果冻” 今日提醒大乐透送4注头奖 奖池仍超5亿扬子健康俱乐部携程“全球购”频道正式上线小笔画青奥传柯震东在陆吸毒被捕 经纪人:联系不半小时路程开了2个半小时世界杯神器变暗器! 阿森纳核心遭没系安全带撞车被抛出 保险该赔吗师附中合唱团 全程和声青奥开幕式一到雨天福州盖山杨前村一片汪洋 村民福州市民呼吁24小时自助图书馆增加少客运大巴安全带成摆设 福建暂未对此进美军空袭伊拉克ISIS 摧毁一批军用人民币存款为何骤降近2万亿建QQ群传播淫秽视频 湖北一青年被刑黑龙江政协办公厅副巡视员许兆君接受调
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘