我正在使用带数据JPA的Spring Boot。
我有以下代码。函数Java的不同返回类型
带有名称和信息性消息的用户类别。
class UserResponse{
private String name;
private String message;
}
User JPA Repository which find userBy id;
如果用户没有找到class UserService(){
UserResponse user = new UserResponse();
public UserResponse getUserById(String userId){
Optional<User> useroptional = userRepository.findById(userId);
if(userOptional.isPresent()){
user.setName(userOptional.get().getName());
}else{
user.setMessage("User Not Found");
}
}
UserController中它调用回购和设置邮件
interface UserRepository{
Optional<User> findUserById(String id);
}
用户服务具有以设置适当的HTTP状态代码按照该消息。
class UserController(){
public ResponseEntity<UserResponse> getUserById(String id){
UserResponse user = userService.getUserById(id);
HttpStatus status = OK;
if(!StringUtils.isEmpty(user.getMessage())){
status = NOT_FOUND;
}
return new ResponseEntity<>(user,status);
}
}
我所面对的问题是序设置在控制器层适当状态码我必须检查用户消息,这是我不喜欢。 无论如何,我们可以为成功和失败案例创建控制流程。
说一个成功方案的返回类型和流程,反之亦然。 我知道斯卡拉有这个功能要么关键字。 Java中是否有其他替代方法? 或任何其他方法,我可以用来处理这个更好的...
一种方法是返回RepsonseEntity在服务层本身与适当的状态代码,但设置状态代码是控制器的责任是我的感觉。