我开始用spring学习MVC。我听过很多时间Bean
,其中包含setter和getter。 Model
基本上是数据流,Pojo
与Bean
相同。但是我在这个术语中真的很困惑,所有这些对我来说都是一样的,请你们解释一下这些术语的确切区别。
JAVABEAN
POJO
模型
答案 0 :(得分:20)
如果您正在使用MVC架构,那么Model代表您的域:表示您的实体,而不是与Java相关的术语。
您的模型在Java中表示为Java Bean(Java EE中的最佳实践)
Java Bean是一个普通的Java类,它实现Serializable接口并具有无参数构造函数,并为每个字段设置getter和setter。
然而,POJO只是不受Java语言规范强制限制的任何限制的对象的命名(Wikipeadia)。这只是为了公约而且与MVC架构没有严格的关系 请注意,Java bean是实现Serializable接口的POJO。
答案 1 :(得分:2)
唯一区别是bean可以序列化。
来自Java文档 - http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html
实现java.io.Serializable接口的类启用了类的可序列化。未实现此接口的类将不会将其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
虽然模型是处理业务逻辑的不同之处。
你可以参考链接
答案 2 :(得分:0)
作为补充,有必要描述每个项目的意图。
根据wiki的定义,
术语“ POJO”最初表示不遵循的Java对象 任何主要的Java对象模型,约定或框架
理想情况下,POJO是一个Java对象,除了Java语言规范所强加的限制之外,没有任何其他限制
通常,POJO不依赖于任何库,接口或注释。因此,POJO更可能被其他系统重用。
好吧,什么是Java Bean?为什么我们要创建此项目?
我认为this link的描述已经很清楚了。
JavaBeans是将许多对象封装为一个类的类 对象(bean)。它们是可序列化的,具有零参数 构造函数,并允许使用getter和setter访问属性 方法。
为什么我们要让Jave bean表现得如此?
这允许在编辑和激活内轻松实例化 框架。
这可以轻松地自动检查和更新bean状态 在框架中,其中许多包含针对各种应用的自定义编辑器 属性类型。设置器可以有一个或多个参数。
这允许应用程序和框架可靠地保存,存储和 以独立于VM和虚拟机的方式恢复bean的状态 平台。
通常,该模型不会与POJO或JaveBean进行比较,因为它是一个完全不同的项目。就像其他答案中提到的一样,模型通常是MVC中的概念。
模型是模式的核心组成部分。它是 应用程序的动态数据结构,独立于用户 接口。[6]它直接管理数据,逻辑和规则 应用。
如您所见,POJO或JavaBean可以位于MVC模式的模型层,但可以位于模型层,但是模型层还有很多东西,例如应用程序的逻辑和规则。