BeanUtils
BeanUtils.copyProperties
这里关于BeanUtils的实际操作
maven依赖
Maven: org.springframework:spring-beans:5.3.2
import org.springframework.beans.BeanUtils;
上代码
在一个用户的实体类里 有这么些属性 User
@Data
public class User{
private Long id;
private String username;
private String password;
/**
* 头像
*/
private String icon;
/**
* 邮箱
*/
private String email;
/**
* 昵称
*/
private String nickName;
}
要实现注册功能 前端传的值建立一个dto
import lombok.Data;
import lombok.ToString;
@Data
@ToString
public class DTO {
private String username;
private String password;
}
Controller 接收dto参数 现在要注册的话
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
Service service;
/**
* 注册
*/
@PostMapping("/register")
public String register(@RequestBody DTO dto){
service.register(dto);
return "sucess";
}
}
这里先不加service接口了 直接写实现
@Service
public class Service {
@Autowired
Mapper mapper;
/*
这里是加密代码附上 用的crypt
maven 依赖Maven: org.springframework.security:spring-security-crypto:5.3.2.RELEASE
*/
@Autowired
private PasswordEncoder passwordEncoder;
public String register(DTO dto){
User user= new User();
// 把数据放到实体类 dto里的属性 user全部有 dto属性不能比user里多 相当于把前端传过来的值在传给这个User 相当与user.setUsername(dto.getUsername())
BeanUtils.copyProperties(dto,user);
//加密操作
String encode = passwordEncoder.encode(dto.getPassword());
//重新set密码
user.setPassword(encode);
//数据注入数据库
mapper.insert(user);
return "success";
}