为了账号安全,请及时绑定邮箱和手机立即绑定

弹簧引导休息控制器。返回对象,包括继承属性和异常处理

弹簧引导休息控制器。返回对象,包括继承属性和异常处理

PIPIONE 2021-07-23 18:06:55
我在 Spring Boot restcontroller 方面遇到了困难。用户服务@Servicepublic class UserService implements IUserService {    @Autowired    public PasswordEncoder passwordEncoder;    private final UserRepository userRepository;    public UserService(UserRepository userRepository) {        this.userRepository = userRepository;    }    public UserLoginResponse register(RegisterUserRequest request) throws NoValidRegisterDataException, Exception {        UserLoginResponse response = new UserLoginResponse();        UserEntity user = request.getUser();        if(!this.checkUserDataValidity(user)) {            throw new NoValidRegisterDataException();        }        user.setPassword(this.encodePassword(user.getPassword()));        try {            user = this.userRepository.save(user);        } catch (Exception e) {            throw new Exception("Database save error");        }        response.addMessage(new ResponseMessage(ResponseMessageType.success, "Uživatel úspěšně registrován"));        response.setUser(user);        //TODO token handler        return response;    }    private boolean checkUserDataValidity(UserEntity user) {        return (user.getEmail() != null && user.getPassword() != null && user.getUsername() != null);    }    private String encodePassword(String password) {        return this.passwordEncoder.encode(password);    }}到目前为止,我有一个服务注册(主要方法)。它由 UserController 调用(下面的代码)@RestControllerpublic class UserController {    private final UserService userService;    public UserController(UserService userService) {        this.userService = userService;    }第一个问题是,当发生不好的事情(错误的用户数据,其他一些错误)时,我会得到空的 UserLoginResponse 对象。大多数情况下没问题,但我没有消息。(错误消息设置在 UserController 的 catch 块中,因此它们应该在那里。)第二个问题是,即使我在 UserController 的第一个 catch 块(一般异常)中抛出 NoValidRegisterDataException 异常也由最后一个 catch 块处理。我怎样才能解决这个问题?我认为异常是由它适合的第一个 catch 块处理的(从上到下)。编辑:我已经解决了第二个问题。我没有注意到抛出异常的条件是抛出空指针异常。所以现在说得通了。我添加了空检查,异常现在工作正常。但我仍然不知道如何返回整个响应,包括来自父响应对象的消息。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信