@autowird的替代用法以及VO,PO,DTO的转换

@autowird的替代用法

首先介绍一下Service和@Mapper

@Service是Spring·提供的注解,当标注后会被Spring容器扫描到并创建一个实例(Bean)在@Service中就有@Component

而@Component是 标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean。

对于@Mapper来说呢它是由Mybatis框架提供的,是把接口交给Spring进行管理

@autowird是spring注解基于依赖注入的原理。在Spring容器中,所有的Bean都会被实例化和管理,它们之间的依赖关系由Spring容器来维护。当一个Bean依赖于另一个Bean时,可以使用@Autowired注解来告诉Spring容器自动装配这些依赖。

但我们使用的时候会发现 使用@autowird时不被Spring推荐

而Spring推荐的方法是构造函数注入

但如果有多个成员变量要注入的话就有很多的构造函数

我们可以通过

@RequiredArgsConstructor必备的构造函数,来对有需要的成员变量进行构造

对有需要的成员变量声明时加上final,来表示常量,必须要一开始进行构造

VO,PO,DTO的转换

从实质上看来呢,vo,po,dto是属于同一种对象的,但侧重点不同

先说PO,PO侧重于数据库的永久对象,直接和数据库中的数据列一一对应,这个大家很熟悉。

VO侧重于数据返回给前端的对象,比如说数据库密码,电话号码等等涉及到用户隐私的或者前端不需要的就不存在在VO对象中

而DTO是侧重于后端接收的数据,比如说注册时间,创建时间,账号状态等等信息是交由后端处理的,而前端不能处理的就不存在在DTO对象中

总得来看呢就是PO包含的最多,而VO和DTO的各是PO的一部分

如何从DTO转换成PO呢?

这就需要拷贝过去

常用的一种方法呢就是hutool提供的拷贝方法

        BeanUtil.copyProperties(userDTO, User.class);

PO转化VO一样,需要拷贝

        BeanUtil.copyProperties(user,UserVO.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值