写点什么

Gavin King 提供 Web Beans 预览(JSR 299)反映受 Guice 启发的依赖注入特征

2007 年 9 月 28 日

Gavin King 发布了即将面世的 Web Beans( JSR 299 )规范的 4 部分预览( 1 2 3 4 )。Web Beans 由 JBoss 发起,旨在填补在 JEE 5 中 Web 层和事务层之间的断层。JSR 的成员包括 Sun、Oracle 和 Google。King 表示该组件模型深深地受到了 Google Guice Seam 的影响。

本系列的第一部分对该技术进行了介绍:

……Web Beans 是与两个层中的技术都兼容的组件模型。Web Beans 能与 JSF 和 EJB3 都集成,允许 EJB3 会话 Bean 扮演 JSF 管理 Bean,这样就统一了两个组件模型。此外,Web Beans 提供了会话模型和持久化上下文管理,因而解决了状态管理问题以及影响 JSF 和 JPA 的最优化事务管理问题……Web Beans 是包含业务逻辑的应用组件。Web Beans 可以被 Java 代码直接调用,或通过统一 EL 被调用。Web Beans 可以访问事务性资源。Web Beans 间的依赖自动的被 Web Beans 容器管理。大多数 Web Beans 是有状态和上下文相关的。Web Beans 的生命周期总是被容器管理……

本系列的第二部分涵盖了规范的注入、绑定标注和组件类型。支持的注入类型包含:

  • Direct Field
  • Method
  • Constructor
  • Parameter

本系列的第三部分提供了通过XML 替代标注声明组件的例子。最后, King 论及了作用域、上下文和解析器方法。可用的作用域如下:

  • @RequestScoped
  • @SessionScoped
  • @ApplicationScoped
  • @ConversationScoped

正如被期望的,如此数量庞大的内容已有了相同数量级的评论。其中一个较为有趣的言论是:

在过去的几年间,有非常多的言论谈及 Interface 21 或许应该正式推动 Spring 框架成为 JEE 规范的一部分——只要 Rod Johnson 正式宣布对 JEE 6 的支持,这似乎是有可能的……嗯,看起来“疯狂的”Bob Lee 和 Guice 背后的团队可能已经找到了让自己抢先挤入这场聚会的后门——根据关于即将面世的 Web Beans 的新一系列的文章来看,新规范的确被 Seam 和 Guice 联合影响了……我发现这些文章有趣之处在于 Google 明显采用了 JBoss 的方式去支持 JCP——那就是,创建一个独立的产品填补 JEE 规范中的一整块,然后利用 JCP 使那个产品成为规范本身(JPA 就是前车之鉴)……

类似的评论可在这些文章本身中找到:

非常有趣——其中与 Seam 有明显的联系,但这是我第一次看到任何与 Guice 团队有牵连的东西……我不得不怀疑“Web Beans”这一术语是否准确……

King 针对它的回答:

Seam 可能最终将分成两层:1) 核心组件引擎,它将发展成 Web Beans RI 2) 框架层,它将提供所有的内置组件、JSF 组件等等……Bob 为这个规范已经贡献了极大的努力和心血。

查看英文原文: Gavin King Provides Web Beans Preview (JSR 299) Featuring Guice Inspired Dependency Injection

2007 年 9 月 28 日 01:00344
用户头像

发布了 255 篇内容, 共 45.8 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
  • JBoss AS 5 发布:项目主管 Dimitris Andreadis 访谈

    经过相当长的开发周期之后,JBoss AS 5 RC1已经发布了。InfoQ联系到了项目主管Dimitris Andreadis,请他谈一谈新特性和发布时间表。此外,Dimitri还谈论了Java EE 6的特性,JBoss AS的竞争优势,以及他们为何选择实现一个可插拔的组件模型、而不只是支持OSGi。

  • Oracle 发布 JDeveloper 11g 预览版及逾 80 个支持 AJAX 的开源 JSF 组件

    Oracle发布了其JDeveloper 11g IDE的技术预览版,随之一起发行的还有超过80个支持AJAX的免费JSF组件,通过改良对富客户端接口、数据库连通性和数据绑定等方面的支持,提升IDE的可视化开发能力。

  • JavaOne 大会谈 JBI 2.0

    Sun公布了JBI2.0技术委员会,在JavaOne举行了一场面对面讨论会,并接下来举行了整晚JBI相关的活动。

  • Interface21 与 Tasktop 探讨即将推出的 Spring Tool Suite

    Interface21与Tasktop科技最近宣布他们将合作开发Spring工具套件(Spring Tool Suite)。InfoQ就该应用以及它与Spring IDE的关系与这两家公司进行了讨论。

  • 第 184 讲 | 狼叔:2019 年前端和 Node 的未来—大前端篇(上)

    狼叔谈2019年对大前端现状及未来发展趋势的理解。

    2019 年 3 月 11 日

  • 结果测试 & 结束语

    2020 年 5 月 28 日

  • 程序员练级攻略:微服务

    微服务中有很多很不错的想法和理念,所以学习微服务是每一个技术人员迈向卓越的架构师的必经之路。

    2018 年 7 月 19 日

  • 程序员练级攻略:技术资源集散地

    学习需要自我驱动,要学会自己“找食物”,而不是“等着喂”。《程序员练级攻略》只是一个起点,引发你去走更远的路。

    2018 年 8 月 9 日

  • 深入浅出 JBoss Seam

    JBoss Seam整合了Ajax、JSF、EJB3、Portlets和BPM,是个全新的一站式web应用框架。本文节选并编辑了Michael Yuan和Thomas Heute即将出版的关于Seam一书中的第一章和第二章,阐述了Seam的用途,并通过HelloWorld一例阐释了该设计理念。

  • Jim Marino 与 Meeraj Kunnumpurath 专访:关于 SCA 和 Fabric3

    BEA发布了在WebLogic 10.3中支持的SCA技术预览版,它是以开源的Fabric3运行时为基础构建的。InfoQ对Jim Marino和Meeraj Kunnumpurath进行了专访,前者是BEA Systems的技术主管,后者是VocaLink的首席技术人员。我们就他们对SOA和SCA的看法,VocaLink实施SOA的方法和这个技术的关键优势进行了讨论。

  • SnappyData 在美团酒店实时数据分析中的应用

    演讲嘉宾 焦向,美团点评高级技术专家,酒店经营效率组负责人。 内容介绍 以Flink和SnappyData为核心,将原有的非实时、开发周期长、维护成本高的以“预处理”为核心的方案,转化为目前以“后处理”为核心的方案。 开发效率:得到质变,无需预处理,周级别需求小时级完成; 节省存储空间:比如原方案Kylin中150T+预处理结果数据不再需要; 其他一些收益:比如指标一致性显著提升; 历史数据问题:采用类SCD Type 2的方式,处理历史事实数据和数据压缩,有不少对比数据; 建模问题:直接从原始表支持需求,中间缺少传统数仓建模的抽象层次,尝试实现类似Shasta的RVL层。 介绍SnappyData的优势劣势,当前的问题,我们在调优方面的努力,以及我们的定制化修改: 支持注册Spark声明式UDF,相比于命令式UDF,性能提升一个量级,很好的解决了酒店的特殊场景; Boxing/Unboxing优化; QueryPlan Cache相关的优化。

    2018 年 9 月 12 日

  • 当 GraphQL 遇到 Observable -- 同构 Web App 的另一种探索

    演讲嘉宾俞天翔,快手科技 前端架构师内容介绍在开发快手游戏直播站的过程中,为了进一步提升体验,我们先后经历了从传统网页到基于Vue SSR的同构应用的迁移。随着项目的扩大,之前很多架构上的问题也逐渐开始暴露出来:状态的组织,数据获取方式的取舍,数据流向的管理,组件的职责拆分等等基于此我们对项目架构进行重新设计,开始尝试基于Apollo GraphQL与xstream作为数据层解决方案,对于同构应用中的数据层管理方案进行深度定制,并针对多数据源聚合,单一数据源派发等场景进行重新梳理与开发,使得架构设计层面更加清晰,极大的提高了项目整体的可维护性于扩展性。在本次演讲中,会对我们在项目研发过程中所遇到的挑战,以及对应解决方案的思考上进行细致的讲解,希望能够对与会者们有所启发。内容大纲 从网页到应用,快手游戏直播架构的第一次迁移; 同构开发的挑战,基于Vue SSR的踩坑之旅; 基于GraphQL,重新定于数据层; 基于Observable的数据管理方案,One For All,All For One; 快手游戏直播架构的二次迁移,总结。

    2019 年 1 月 2 日

发现更多内容

架构训练营大作业(一)

一期一会

精美的淘客项目完全开源啦,确定不来围观吗

Silently9527

Vue mybatis springboot uniapp

【LeetCode】子集问题debug模式查看数据变化

HQ数字卡

算法 LeetCode 2月春节不断更

翻译:《实用的Python编程》00_Setup

codists

Python

为啥写的mybatis插件没用?一场mybatis插件加载机制的探索之旅

altantisor

spring Boot Starter mybatis源码

架构训练营大作业(二)

一期一会

翻译:《实用的Python编程》README

codists

Python

天秀,阿里P9耗时64天,总结历年亿级活动终成这份亿级高并发系统设计手册

互联网架构师小马

批判性思维自修课(六)

石君

28天写作 批判性思维

一文看完TCP/IP协议基础知识点

网络技术平台

学习计算机视觉

Tango

OpenCV 计算机视觉 2月春节不断更

产品训练营第三次作业

Geek_79e938

看完字节大佬的算法刷题宝典,我直接手撕了500道算法算法题

云流

程序员 面试 算法

京东支付SDK重构设计与实现

京东数科风险算法与技术

产品训练营-作业3

简小一

被接连封杀后,出海的“TikTok们”都打算如何做?

李忠良

28天写作

区块链在数字版权领域的应用发展报告(2020)

CECBC区块链专委会

版权保护

不会开发的你也能管理好企业漏洞,开源免费工具:洞察(insight II)

Young先生

安全 安全漏洞 28天写作 2月春节不断更

管理笔记[4]:组织管理的目标就是实现1+1>2

俊毅

「产品经理训练营」作业03:利益相关方识别

狷介

产品经理训练营

28天瞎写的第二百三十五天:客服得有多专业?

树上

28天写作

图解计算机结构与体系分类!!

冰河

编程 程序员 高并发 计算机结构 操作系统原理

静默安装Oracle也没那么恐怖

MySQL从删库到跑路

oracle

分页方式,看这一篇就够了。

大伟

分页

Spring - IOC

小马哥

Java 架构师 spring 5 日更挑战 7日更

架构师训练营第十周作业

zamkai

极客大学·产品经理训练营·第二章作业(二)

二大爷

极客大学 产品训练营

Java并发包源码学习系列:阻塞队列实现之SynchronousQueue源码解析

云流

Java 编程

全新演绎!阿里甩出2021最新秒杀系统设计实录!这也太香了吧

程序员小毕

Java 架构 面试 系统设计 高并发

硬核!八张图搞懂 Flink 端到端精准一次处理语义 Exactly-once(深入原理,建议收藏)

五分钟学大数据

大数据 flink

《学会写作》学习笔记之如何拟标题

JiangX

28天写作

微服务架构下如何保证事务的一致性

微服务架构下如何保证事务的一致性

Gavin King提供Web Beans预览(JSR 299)反映受Guice启发的依赖注入特征-InfoQ