NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Java EE 6 的依赖注入终于达成一致了

  • 2009-08-23
  • 本文字数:1325 字

    阅读完需:约 4 分钟

今年初, Google Guice 和 SpringSource 宣布将合作提出一套标准的用于依赖注入的注解,即 JSR-330 。但这些注解与 JSR-299 却并不一致,随后引发了众多的争论,不过现在一切都已经尘埃落定:JSR-299 采用了 JSR-330 的注解,两者都将成为 Java EE 6 的一部分。

有不少人针对 JSR-299 与 JSR-330 的冲突谈到了自己的一些看法,列举如下:

  • Gavin King :我认为引入另一套语义上与 299 相同的注解完全是个错误,而且其尝试解决的问题也与 299 大同小异。
  • Bob Lee :虽然 299 对于那些小型的 Java EE 应用来说很适合,但其全局配置以及不直接的天性使之很难适应于数百万代码行的应用,就像 Google 所开发的。我们能够在 Guice 上轻松支持 299 风格的注解,但却无法通过 299 实现 Guice 的全部功能,因此没有理由放弃 Guice 而转向 299。就我个人来说,我认为你们在 299 上已经进行了不少的创新,但却没有完全理解用户代码是需要维护的这个事实。
  • Alex Miller :向 JSR 299 领域进军是个危险的信号。
  • Antonio Goncalves :我希望我们不要打响一个新的战役,就像 Java Module(JSR 277)和 Modularity Support(JSR 294)之间那样。
  • Rickard Öberg 说出了反对意见:相对于泛泛的使用 @Inject 这样的注解,我们选择使用能代表目标对象范围的注解,因为什么都是也意味着什么都不是。

JSR-330已经通过了 JSR 评审的投票,但众多投票者都强调了两个规范的和谐相处:

  • Sun:我们希望该 JSR 能与 JSR-299 共同努力以便为 SE 和 EE 平台达成一个一致、全面的依赖注入标准。这个标准务必先于该 JSR 的公共预览版发布前形成。
  • Red Hat:我们认识到该草案是有社区支持的,因此打算在专家组发布公共草案时再发表最终意见。如果该 JSR 与 JSR-299 之间能达成某种一致(这种一致性会为依赖注入定义一种轻量级的模型),那我们会毫不犹豫地投出赞成票。Red Hat 承诺会为这种一致性贡献自己的一份绵薄之力。
  • Ericsson:我们支持为标准化 Java SE 的依赖注入所付出的努力,但更想强调的是保持与 JSR 299 的一致性对于 Java SE 和 EE 都是非常重要的。
  • IBM:我们也认为这样一份描述 SE 应用的依赖注入规范是很有必要的,然而所提出的注入模式却与 EE 平台中的定义有出入。SE/EE 的注入模型必须要形成一个单独可扩展的编程模型:为 SE 定义一套核心功能并通过 EE 的功能对其进行扩展。因此,要是不统一的话,IBM 是不会支持 JSR 299 或是 330 的。
  • Oracle:虽然支持该 JSR,但 Oracle 严重关注该草案的完整性及其与 JSR 299 的分歧,因为这可能会导致平台的分裂。因此,我们期望在该 JSR 的公共预览版发布前能与 JSR 299 达成一致。我们相信 JSR 250 的一个修订或是维护版会比较适合发布依赖注入相关的注解。最终我们希望这种一致性的努力会让 SE 和 EE 平台的依赖注入保持一致,形成一个标准化的机制以满足各种需求。

目前这些规范之间的冲突已经得到解决。JSR-330(面向 Java 的依赖注入)以及 JSR-299(面向 Java EE 平台的上下文与依赖注入)已经达成一致了,后者将采取前者的注解,两者都将成为 Java EE6 的一部分。迄今为止,社区的反响还是积极的( Matt Corey Jeremy Norris Alex Miller Oliver Gierki Niklas Gustavsson )。

查看英文原文: Dependency Injection harmonized for Java EE 6

2009-08-23 10:132865
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

一文读懂容器存储接口 CSI

阿里巴巴云原生

容器 云原生 k8s 存储 调度

亿网嘉元是做什么的?

飞亚科技

【LeetCode】子集二Java题解

Albert

算法 LeetCode 4月日更

区块链电子政务——不动产综合服务平台

电微13828808271

将本地maven仓库的数据恢复到Nexus仓库

白粥

工作笔记

大数据前置知识-服务器及磁盘

大数据技术指南

大数据 4月日更

Linux rmdir 命令

一个大红包

linux命令 4月日更

Dubbo 学习笔记(三) Spring Boot 整合 Dubbo(官方版)

U2647

Spring Boot dubbo 4月日更

云数据库时代的新思考,这位90后大咖想邀你聊聊

华为云开发者联盟

数据库 开源 opengauss GaussDB 华为云数据库

MySQL 事务隔离

Sakura

4月日更

大意!6行代码,“报废”5片单片机!

不脱发的程序猿

程序人生 嵌入式软件 单片机 4月日更 国产MCU

技术人如何调研和选型第三方 SDK?全文干货

融云 RongCloud

极智网络告警关联规则挖掘

鲸品堂

方法论 解决方案

EGG Network阿凡提 公链EFTalk全球首创POTP二叉交叉共识机制

币圈那点事

智慧公安情报综合研判平台开发,助推公安信息化发展

13828808769

智慧城市

进来看看是不是你想要的效果,Android吸顶效果,并有着ViewPager左右切换

第三女神程忆难

Java android kotlin 安卓 移动开发

企业如何做数字化转型?想要资产状况及时把控,它的作用至关重要!

一只数据鲸鱼

数字化 数据可视化 资产管理

阿里高级架构师纯手打832页Java全栈知识点笔记,吃透后成功七面上岸滴滴!

Java架构追梦

Java 阿里巴巴 架构 面试 成长笔记

程序员去大公司面试,我的头条面试经历分享,搞懂这些直接来阿里入职

欢喜学安卓

android 程序员 面试 移动开发

“区块链+电子商务”,电商能否再创辉煌?

电微13828808271

云小课 | 不了解EIP带宽计费规则?看这里!

华为云开发者联盟

带宽 弹性公网IP 带宽变更 计费模式

OKR实践中的痛点(5):战略缺失怎么玩OKR?

大叔杨

团队管理 OKR 敏捷 敏捷绩效

NA(Nirvana)公链“为应用而生” NAC公链领跑公链新格局!

区块链第一资讯

android开发面试题,字节跳动Android三面凉凉,手慢无

欢喜学安卓

android 程序员 面试 移动开发

面试官:请说说什么是BFC?大白话讲清楚

蛙人

CSS 大前端

派出所重点人员管控系统开发,建设智慧警务

13828808769

智慧组工

css网页布局小结

Darren

CSS

你的数仓函数结果不稳定,可能是属性指定错了

华为云开发者联盟

函数 GaussDB(DWS) 函数属性 函数下推 易失性级别

systemctl的使用

箭上有毒

linux运维 4月日更

区块链电子合同技术方案,区块链电子合同存证

13828808769

区块链 区块链+

装双系统?不需要!教你在iMac上流畅使用Windows

懒得勤快

Mac 虚拟机 苹果 crossover

Java EE 6的依赖注入终于达成一致了_Java_Geoffrey Wiseman_InfoQ精选文章