【问题标题】:why should java beans be used? [duplicate]为什么要使用 java bean? [复制]
【发布时间】:2013-05-28 17:29:29
【问题描述】:
我是 j2ee 的新手,想了解 java bean。我有一个 java 类,并在另一个类中使用该类的实例。我应该将第一个类定义为java bean然后在另一个类中注入它的实例的原因是什么?那有什么好处呢?什么样的类更适合定义为 java bean?比如我可能有一个 pojo 用在 ORMapping 中,一个类做 UI(我用 vaadin 做 UI),另一个类做业务逻辑(例如,计算结果具体数学公式),另一个类做做数据库操作。使用 ejb 或 spring 定义为 java bean 的候选者是哪一个?
【问题讨论】:
标签:
java
spring
ejb
javabeans
【解决方案1】:
JavaBeans 名称仅涉及为类的公共属性提供访问器方法的约定。 POJO 是一个正交概念,Java bean 也很容易成为 POJO。
您似乎正在考虑在 Spring IoC 容器的上下文中使用 bean。 Spring 在相当宽松的意义上使用术语“bean”,实际对象甚至可能不符合 JavaBeans 规范。大多数情况下,它们只提供一个 setter(没有 getter)。
现在,让 IoC 容器将相互依赖的对象连接在一起的好处很多,强烈推荐这种做法。几点:
- bean 实例化的关注点是集中的;
- bean 之间的耦合更少:客户端 bean 不需要知道如何初始化其协作者;
- 非常容易处理循环依赖问题;
- 没有涉及实例化的样板代码散布在代码周围;
- 轻松重用单例 => 节省内存,为对象系统带来秩序和一致性;
- bean 生命周期的声明式控制,同样在 bean 本身中没有样板代码。
【解决方案2】:
Java bean 用于将数据持久存储在数据库中。这个类由setter和getter方法组成。您需要创建另一个 java 类来执行此操作
【解决方案3】:
来自 javadocs:
JavaBeans™ 可以轻松重用软件组件。开发者可以
使用他人编写的软件组件,无需了解
他们的内部运作。
要了解软件组件为何有用,请考虑一个工人
组装汽车。而不是从头开始构建收音机,
例如,她只是简单地获得了一台收音机并将其与其他人连接起来
车。