我不记得我在哪里读过JavaBean
是一个由依赖注入容器管理的POJO。这总是适用吗?或者还有一些其他上下文bean
代表其他内容?
修改
This回答根本没有提到DI容器。因此,由DI容器管理不是Java类成为{{1}}的必要条件吗?
答案 0 :(得分:3)
JavaBeans标准早于DI框架,最初是一个流行的用例,支持拖放组件(如Delphi或VB中的组件,它们具有可重复使用的小部件的组件调色板,可以拖到表单上并连接在一起),支持PropertyEditors和属性表。当时可视化编程环境非常庞大,第三方组件市场存在,Sun可能想要类似于Java的东西。
一旦人们开始构思DI框架,他们需要一种可预测的方式来设置对其托管对象的依赖关系,因此他们挪用了现有的标准。来自Rod Johnson's Expert One-on-one J2EE Design and Development:
如果我们制作所有应用程序组件JavaBeans,我们最大限度地将配置数据与应用程序代码分开。我们还确保无论在何处保存配置数据,都可以以一致的方式配置应用程序组件。
术语POJO是在2000年创造的,其概念是描述对框架没有明确依赖性的代码:
理想情况下,POJO是一个Java对象,除了受Java语言规范强制的限制之外,不受任何限制的约束
其中关于如何不做的海报孩子是版本3之前的EJB,对框架类的入侵依赖性阻止了容器外测试。
DI框架有兴趣以透明和非侵入的方式提供功能,JavaBeans提供了一个通用标准,POJO可以使用它来公开他们的配置,因此它们是一个很好的匹配。