在Java Spring中,Java bean优于POJO的优势是什么?

时间:2015-08-30 05:20:31

标签: java spring javabeans pojo

我对Spring框架很陌生,所以我为这个愚蠢的问题道歉。我一直在学习Java bean;我也一直在阅读Spring框架如何是一个bean容器以及如何有不同类型的bean(What is the advantage of using Java Beans?)。

然而,我仍然不明白为什么他们如此强大。如果我们想创建一个Spring Web应用程序,我们不能在不使用bean的情况下这样做,而只是使用POJO?使用Java bean而不是POJO有什么优势?

4 个答案:

答案 0 :(得分:4)

JavaBean可以或通常是POJO,反之亦然 唯一的区别是Java bean遵循certain conventions,而POJO不一定需要遵循任何约定。

您可以参考以下链接:Beans vs POJO 从上面的链接:

  

Spring管理对象被称为bean是因为在非常   在早期版本中,Spring仅用于JavaBeans。那   当然不再是这样:Spring可以管理任何一个   对象,即使它没有JavaBean类型的特性,例如   默认构造函数或mutator方法(getter和setter)。没有   更少,“春豆”这个词已经卡住了。

答案 1 :(得分:1)

没有任何关键优势。要解释一下,

有三件事需要澄清,

  1. 的JavaBeans
  2. JavaBeans只是遵循某些编码约定的Java类

    1. POJO(Plain Old Java Object)
    2. 春豆
    3. Spring bean是由Spring框架创建和管理的对象。

      所讨论的3个术语均不相互排斥。 Java对象可以同时是JavaBean,POJO和Spring bean。总而言之,JavaBean是POJO的一个特例。对于Spring容器内的POJO,JavaBeans没有特殊的权力。

答案 2 :(得分:0)

JavaBean有一些合同,比如它应该有公共默认构造函数和getter setter,需要实现Serializable。

但是在POJO的情况下,没有这样的合同。它比JavaBean

更简单

答案 3 :(得分:0)

使用Spring bean编写应用程序还可以使用模拟框架(如Mockito)更轻松地测试应用程序。您可以在junit类中使用模拟或存根实现。

如果没有托管bean容器,给定的类需要实例化它所有依赖的对象 - 这使得为该类编写单元测试变得困难 - 它可以完成,但它更难。

使用依赖注入框架,您可以使用模拟对象在单元测试中自行调用依赖对象的setter。