项目基础总结(一)

DO
DO就是一个业务实体对象

DTO
DTO就是一个复合的DO对象,由于业务需要我们需要调用业务A查询数据得到业务对象A,再调用业务B查询数据得到业务对象B然后一系列封装转化得到复合的对象C此时他就是一个DTO,data transfer object 它是一个服务层和服务层以上之间转换的对象。

PO
po持久化对象 一般放在domain 或者 Entry中是一个与数据库表关联的对象,每一个属性都是表中的一个字段。
当业务过于简单时,po ,do,dto,vo并没有什么区别的时候我们也可以直接复用PO

vo
vo就是我们在web的controller层返回的Object,
在接口中这个VO都会被转成Json对象输出,view object。

dozer Mapper的使用

Mapper mapper = new DozerBeanMapper();
BeanA sourceObject = new BeanA();
BeanBF destObject =  
    mapper.map(sourceObject, BeanBF.class);

jdk8以后 Optional 类的使用
ofNullable() 方法 判断是否null

Optional<User> opt = Optional.ofNullable(user);

orElse()方法,当取值为空返回默认值,如果不为空返回原对象

@Test
public void whenEmptyValue_thenReturnDefault() {
    User user = null;
    User user2 = new User("anna@gmail.com", "1234");
    User result = Optional.ofNullable(user).orElse(user2);

    assertEquals(user2.getEmail(), result.getEmail());
}

orElseGet() 用法与 orElse()基本一致
但是optional 对象都包含非空值,两个方法都会返回对应的非空值。不过,orElse() 方法仍然创建了 User 对象。与之相反,orElseGet() 方法不创建 User 对象。

@Test
public void givenPresentValue_whenCompare_thenOk() {
    User user = new User("john@gmail.com", "1234");
    logger.info("Using orElse");
    User result = Optional.ofNullable(user).orElse(createNewUser());
    logger.info("Using orElseGet");
    User result2 = Optional.ofNullable(user).orElseGet(() -> createNewUser());
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值