开发中POJO是DO, DTO和VO等的统称。
DO是data object的缩写,是数据对象的意思,一般和数据库中的表相对应。会放在domain包中。如果使用jpa开发,则DO的属性会被@Id, @Column, @OneToMany, @OneToOne, @ManyToMany和@mappBy等注解修饰来建立数据对象跟数据库表之间的映射关系,以及表之间的关联关系。如果使用mybatis开发,则不需要注解修饰,只需要简单的Java对象就可以。
DAO是data access object的缩写,是数据访问对象的意思。如果使用jpa开发,可以放在repository或者dao包中,并且是接口的形式,只需要继承jpa提供的repository接口,并添加自定义方法即可,jpa提供了用curd的curdrepository和pagerepository等接口,用于简化常用操作。如果使用mybatis开发,一般放在mapper包中,同样是接口形式,接口使用@Select, @Update, @Insert, @Delete等注解修饰,在注解中手写SQL完成增删改查等常用操作。
DTO是data transfer object的缩写,意思是数据传输对象,会放在dto包中,用在service层,service层一般会调用DAO中定义的方法获取DO对象,完成业务逻辑后,如果需要返回对象时,会把对象组合或者转化为DTO对象向外传输。转化过程一般使用spring提供的BeanUtils类的copyproperties方法把DO对象的属性复制到DTO对象里。
VO是view object的缩写,意思是视图对象,用于展示数据给用户,用在controller层,是controller向外传输的对象,controller中一般会调用service层中类的方法获取DTO对象,然后转化为VO对象返回给调用端。
DO到DTO,再到VO的转化,一方面是为了把数据返回给调用端,另一方面是为了安全,不把敏感信息返回给调用端。
网友评论