DJp*_*ath 203 java terminology pojo
我不确定区别.我正在使用Hibernate,在某些书籍中,他们使用JavaBean和POJO作为可互换的术语.我想知道是否存在差异,不仅仅是在Hibernate上下文中,而是作为一般概念.
Bri*_*new 245
JavaBean遵循某些约定.Getter/setter命名,具有公共默认构造函数,可序列化等.有关更多详细信息,请参阅JavaBeans约定.
没有严格定义POJO(普通旧Java对象).它是一个Java对象,它不需要实现特定的接口或从特定的基类派生,或者使用特定的注释以便与给定的框架兼容,并且可以是任意的(通常相对简单) Java对象.
小智 102
所有JavaBeans都是POJO,但并非所有POJO都是JavaBeans.
JavaBean是一个满足某些编程约定的Java对象:
小智 25
根据Martin Fowler的一个POJO是一个对象,它封装了业务逻辑,而一个Bean(除其他答案已经指出的定义)比一个容器而已保存数据和操作仅仅设置对象上提供和获取数据.
这个词被创造出来,而Rebecca Parsons,Josh MacKenzie和我正准备在2000年9月的一次会议上发表演讲.在演讲中我们指出了将业务逻辑编码为常规java对象而不是使用Entity Beans的许多好处.我们想知道为什么人们如此反对在他们的系统中使用常规对象,并得出结论,这是因为简单的对象缺乏一个奇特的名字.所以我们给了他们一个,并且非常好.
小智 7
POJO:如果该类可以使用底层JDK执行,而没有任何其他外部第三方库支持则调用它的POJO
JavaBean:如果类只包含带有访问器(setter和getter)的属性,则称为javabeans.Java bean通常不包含任何商业逻辑,而是用于在其中保存一些数据.
所有Javabeans都是POJO,但所有POJO都不是Javabeans
Pojo - 普通的旧java对象
pojo类是一个没有任何专业的普通类,类完全松散地耦合了技术/框架.类不是从技术/框架实现的,也不是从技术/框架api扩展,类被称为pojo类.
pojo类可以实现接口和扩展类,但超类或接口不应该是技术/框架.
例子 :
1.
class ABC{
----
}
Run Code Online (Sandbox Code Playgroud)
ABC类没有实现或扩展技术/框架,这就是为什么这是pojo类.
2.
class ABC extends HttpServlet{
---
}
Run Code Online (Sandbox Code Playgroud)
从servlet技术api扩展的ABC类,这就是为什么这不是pojo类.
3.
class ABC implements java.rmi.Remote{
----
}
Run Code Online (Sandbox Code Playgroud)
ABC类从rmi api实现,这就是为什么这不是pojo类.
4.
class ABC implements java.io.Serializable{
---
}
Run Code Online (Sandbox Code Playgroud)
这个接口是java语言的一部分,不是技术/框架的一部分.所以这是pojo类.
5.
class ABC extends Thread{
--
}
Run Code Online (Sandbox Code Playgroud)
这里的线程也是java语言的类,所以这也是一个pojo类.
6.
class ABC extends Test{
--
}
Run Code Online (Sandbox Code Playgroud)
如果Test类从技术/框架扩展或实现,那么ABC也不是pojo类,因为它继承了Test类的属性.如果Test类不是pojo类,那么ABC类也不是pojo类.
7.
现在这一点是一个例外情况
@Entity
class ABC{
--
}
Run Code Online (Sandbox Code Playgroud)
@Entity是hibernate api或jpa api给出的注释,但我们仍然可以将此类称为pojo类.具有从技术/框架给出的注释的类被这种特殊情况称为pojo类.
| 归档时间: |
|
| 查看次数: |
132847 次 |
| 最近记录: |