我正在尝试在Spring-Boot中为我的控制器编写错误处理程序,以便捕获大多数可能的错误(Spring,sql等).到目前为止,我能够通过Null获得JSON响应,但是我无法将任何数据放入其中.当我尝试收到错误消息时,我只收到一个空白页面.
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import org.springframework.boot.autoconfigure.web.ErrorController;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException;
@RestController
public class BasicErrorController implements ErrorController {
private static final String ERROR_PATH = "/error";
@RequestMapping(value=ERROR_PATH)
@ExceptionHandler(value = {NoSuchRequestHandlingMethodException.class, SQLException.class, IOException.class, RuntimeException.class, Exception.class})
public ErrorBody defaultErrorHandler(HttpServletRequest request, Exception e) {
ErrorBody eBody = new ErrorBody();
eBody.setMessage(e.getCause().getMessage());
return eBody;
}
}
Run Code Online (Sandbox Code Playgroud)
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class ErrorBody {
private String dateTime;
private String exception;
private String url;
private String message;
}
Run Code Online (Sandbox Code Playgroud) 我很难搞清楚如何存储每个玩家在SQL数据库中拥有的卡片.到目前为止我的想法是有一张牌桌:
[id], [cardName]
Run Code Online (Sandbox Code Playgroud)
并将其与这样的球员联系起来:
[id], [playeName], [cardId], [quantity]
Run Code Online (Sandbox Code Playgroud)
这个设置允许我只需将新卡插入卡表即可轻松地将新卡添加到数据库(当新卡可用时).
然而,我关注播放器表,因为它可以非常快地增长(设置有大约250张卡)它看起来像这样的smth:
1 Bravd fireball 4; 2 Bravd Soldier 2; 3 Bravd PoisonSword 1, 4 John Soldier 3; .... etc
Run Code Online (Sandbox Code Playgroud)
玩家最多允许250个条目.我真的很高兴有1000名玩家作为第一个里程碑但是最多可以提供250*1000个条目,而未来数据库大小会有更多玩家或新套装会大大增加
这个解决方案是否可以接受或者有人建议更好的解决方