1

我是 j2ee 的新手,想了解 java bean。我有一个 java 类,并在另一个类中使用该类的实例。我应该将第一个类定义为java bean然后在另一个类中注入它的实例的原因是什么?那有什么好处呢?什么样的类更适合定义为 java bean?比如我可能有一个 pojo 用在 ORMapping 中,一个类做 UI(我用 vaadin 做 UI),另一个类做业务逻辑(例如,计算结果具体数学公式),另一个类做做数据库操作。使用 ejb 或 spring 定义为 java bean 的候选者是哪一个?

4

3 回答 3

3

JavaBeans 名称仅涉及为类的公共属性提供访问器方法的约定。POJO 是一个正交概念,Java bean 也很容易成为 POJO。

您似乎正在考虑在 Spring IoC 容器的上下文中使用 bean。Spring 在相当宽松的意义上使用术语“bean”,实际对象甚至可能不符合 JavaBeans 规范。最典型的是,它们只提供一个 setter(没有 getter)。

现在,让 IoC 容器将相互依赖的对象连接在一起的优点很多,强烈推荐这种做法。几点:

  1. bean 实例化的关注点是集中的;
  2. bean 之间的耦合更少:客户端 bean 不需要知道如何初始化它的协作者;
  3. 非常容易处理循环依赖的巨大问题;
  4. 没有涉及实例化的样板代码散布在代码周围;
  5. 易于重用单例 => 节省内存,为对象系统带来秩序和一致性;
  6. bean 生命周期的声明式控制,同样在 bean 本身中没有样板代码。
于 2013-06-02T10:59:48.897 回答
1

从javadocs:

JavaBeans ™ 使重用软件组件变得容易。开发人员可以使用其他人编写的软件组件,而无需了解其内部工作原理。

要了解软件组件为何有用,请考虑装配汽车的工人。例如,她没有从头开始制造收音机,而是简单地获得了一台收音机并将其与汽车的其余部分连接起来。

于 2013-06-02T10:33:29.317 回答
0

Java bean 用于将数据持久地存储在数据库中。这个类由setter和getter方法组成。您需要创建另一个 java 类来执行此操作

于 2013-06-02T10:43:12.553 回答