我正在开发一个 Spring Boot 应用程序,例如在一个 API 下方:
@Autowired
GetUserIdByUserNameBase getUserIdByUserNameBase;
@PostMapping(value = "/UserName")
public GetUserIdByUserNameOutput getUserIdByUserName(@RequestBody String userName) {
GetUserIdByUserNameInput GetUserIdByUserNameInput = new GetUserIdByUserNameInput(userName);
getUserIdByUserNameBase.setGetUserIdByUserNameInput(GetUserIdByUserNameInput);
MsgStatus msgStatus = getUserIdByUserNameBase.execute();
if (msgStatus == MsgStatus.ERROR_MSG) {
LOG.error("UserRestController,getUserIdByUserName : Internal System Error");
}
return getUserIdByUserNameBase.getGetUserIdByUserNameOutput();
}
我的问题出现在具有相同 API 的第二个/下一个请求中(例如上面的那个)“GetUserIdByUserNameBase”仍然记得第一次点击时保存的所有数据!。
public class GetUserIdByUserNameBase extends ServiceBase {
private final Logger LOG = LogManager.getLogger(GetUserIdByUserNameBase.class);
private GetUserIdByUserNameInput getUserIdByUserNameInput;
private GetUserIdByUserNameOutput getUserIdByUserNameOutput;
private ResultStatus resultStatus;
private String userName;
private TBUSER_INFO userInfo;
在我的例子中,“getUserIdByUserNameOutput”仍然保存来自 API 的第一次命中的先前数据,直到我覆盖内容或将其标记为空。
1 . GetUserIdByUserNameBase.setGetUserIdByUserNameOutput(new GetUserIdByUserNameOutput);
要么
GetUserIdByUserNameBase.getGetUserIdByUserNameOutput().setX(Null);
但在这里我创建了一个问题,因为我为每个新的 API 请求创建了一个新的“GetUserIdByUserNameOutput”实例,并且对系统来说效率不高且繁重......
如果我总结了我真正想知道的内容,我如何告诉@Autowired 在 API 的每个新请求上弹回/搁置对象,而不是使用或覆盖它从第一个请求中记住的内容。?
三国纷争
相关分类