Java bean 是否始终是 DI 容器中的 POJO

Is Java bean always a POJO within DI container

我不记得我在哪里读到 JavaBean 是由依赖注入容器管理的 POJO。这总是成立的吗?或者还有其他一些上下文 JavaBean 代表其他东西?

编辑:

This 答案根本没有提到 DI 容器。因此,由 DI 容器管理并不是 Java class 成为 bean?

的必要条件

JavaBeans 标准早于 DI 框架,最初流行的用例是支持拖放组件(如 Delphi 或 VB 中的那些,它们具有组件面板可重用的小部件,可以拖到表单上并连接在一起),支持 PropertyEditors 和 属性 工作表。当时的可视化编程环境非常庞大,存在第三方组件市场,Sun 可能想要类似的 Java。

一旦人们开始构想 DI 框架,他们就需要一种可预测的方式来设置对其托管对象的依赖关系,因此他们采用了现有标准。来自 Rod Johnson's Expert One-on-one J2EE Design and Development:

If we make all application components JavaBeans, we maximize our ability to separate configuration data from application code. We also ensure that application components can be configured in a consistent way, wherever configuration data is held.

术语 POJO 是 2000 年创造的,用于描述对框架没有明确依赖性的代码:

Ideally speaking, a POJO is a Java object not bound by any restriction other than those forced by the Java Language Specification

如何不这样做的典范是版本 3 之前的 EJB,对框架的侵入性依赖 类 抑制了容器外测试。

DI 框架有兴趣以透明和非侵入性的方式提供功能,JavaBeans 提供了一个通用标准,POJO 可以使用该标准来公开其配置,因此它们非常匹配。