1.验证账号存在,且密码输入正确
(1)初始代码
@Autowired
private UserDao userDao;
@Autowired
private BCryptPasswordEncoder encoder;
public User findByMobileAndPassword ( String mobile, String password) {
Useruser= userDao. findByMobile ( mobile) ;
if ( user!= null&& encoder. matches ( password, user. getPassword ( ) ) )
{
return user;
} else {
return null;
}
}
(2)使用Optional改良
public User findByMobileAndPassword ( String mobile, String password) {
User user = userDao. findByMobile ( mobile) ;
return Optional. ofNullable ( user)
. filter ( u - > encoder. matches ( password, u. getPassword ( ) ) )
. orElse ( null) ;
}
2 验证输入的user非空,并且给密码加密
(1)初始代码
@Autowired
private BCryptPasswordEncoder encoder;
public void add ( User user, String code) {
if ( null!= user && null!= user. getPassword ( ) ) {
String newpassword= encoder. encode ( user. getPassword ( ) ) ;
user. setPassword ( newpassword) ;
userDao. save ( user) ;
} else {
throw new RuntimeException ( "user不能为空且密码不能为空" ) ;
}
}
(2)优化后代码
@Autowired
private BCryptPasswordEncoder encoder;
public void add ( User user, String code) {
String newpassword = Optional. ofNullable ( user)
. map ( u - > u. getPassword ( ) )
. map ( p - > encoder. encode ( p) )
. orElseThrow ( ( ) - > new RuntimeException ( "user不能为空且密码不能为空" ) ) ;
user. setPassword ( newpassword) ;
}