实体entity、JavaBean、Model、POJO、domain的区别
Java Bean、POJO、 Entity、 VO , 其实都是java 对象,只不过⽤于不同场合罢了。按照 Spring MVC 分层结构:
JavaBean: 表⽰层 (Presentation Layer)Entity: 业务层 (Service layer)
Dao: 数据访问层 (data access layer)。
Entity接近原始数据,Model接近业务对象~ Entity:是专⽤于EF的对数据库表的操作,
Model:是为页⾯提供数据和数据校验的,所以两者可以并存
POJO:POJO是Plain OrdinaryJava Object的缩写不错,但是它通指没有使⽤Entity Beans的普通java对象,可以把POJO作为⽀持业务逻辑的协助类。 domain:domain这个包国外很多项⽬经常⽤到,字⾯意思是域的意思。
POJO实质上可以理解为简单的实体类,顾名思义POJO类的作⽤是⽅便 程序员使⽤数据库中的数据表,对于⼴⼤的程序员,可以很⽅便的将POJO类当做对象来进⾏使⽤,当然也是可以⽅便的调⽤其get,set⽅法。
- JavaBean: 先说JavaBean,JavaBean更多的是⼀种规范,也即包含⼀组set和get⽅法的Java对象。
- POJO: 普通的Java对象,对于属性⼀般实现了JavaBean的标准,另外还可以包含⼀些简单的业务逻辑(⽅法)。
- PO: POJO在持久层的体现,对POJO持久化后就成了PO。PO更多的是跟数据库设计层⾯相关,⼀般PO与数据表对应,⼀个PO就是对应数据表的⼀条记录。
- DAO: PO持久化到数据库是要进⾏相关的数据库操作的(CRUQ),这些对数据库操作的⽅法会统⼀放到⼀个Java对象中,这就是DAO。
BO: POJO在业务层的体现,对于业务操作来说,更多的是从业务上来包装对象,如⼀个User的BO,可能包括name, age, sex, privilege, group等,这些属性在数据库中可能会在多张表中,因为每⼀张表对应⼀个PO,⽽我们的BO需要这些PO组合起来(或说重新拼装)才能成为业务上的⼀个完整对象。
- VO(Value Object/View Object): POJO在表现层的体现。 当我们处理完数据时,需要展现时,这时传递到表现层的POJO就成了VO。它就是为了展现数据时⽤的。
- DTO(Data Transfer Object): POJO在系统间传递时。当我们需要在两个系统间传递数据时,⼀种⽅式就是将POJO序列化后传递,这个传递状态的POJO就是DTO。
- EJB(Enterprise JavaBean): 我认为它是⼀组”功能”JavaBean的集合。上⾯说了JavaBean是实现了⼀种规范的Java对象。这⾥说EJB是⼀组JavaBean,的意思是这⼀组JavaBean组合起来实现了某个企业组的业务逻辑。这⾥的⼀组JavaBean不是乱组合的,它们要满⾜能实现某项业务功能的搭配。找个⽐⽅,对于⼀⾝穿着来说,包括⼀顶帽⼦,⼀件⾐服,⼀条裤⼦,两只鞋,这穿着就是EJB.---------------------
因篇幅问题不能全部显示,请点此查看更多更全内容