gpt4 book ai didi

java - 在 SpringBoot 项目的 RestController 中使用静态变量

转载 作者:行者123 更新时间:2023-12-01 16:45:30 25 4
gpt4 key购买 nike

我有一个带有一些 Rest Controller 的 SpringBoot 2.0.5.RELEASE 项目。

在我的 Controller 中我有这个方法:

GetMapping(path = "/menu", consumes = "application/json", produces = "application/json")
public ResponseEntity<List<String>> menus() {

List<String> result = Arrays.stream(MenuAlertEnum.values())
.map(MenuAlertEnum::getAlertName)
.collect(Collectors.toList());

return ResponseEntity.ok(result);

}

由于 MenuAlertEnum 是应用程序。常量并且始终具有相同的值我想将其作为静态变量放在 Controller 中以使其更快,但是默认情况下,spring bean 是单例我认为这不是一个好的做法?

最佳答案

除了任何正常的并发问题之外,从单例 bean 访问静态数据应该不会有任何问题。

如果您不想使用静态变量,则可以在 Controller 中使用 @PostConstruct 来初始化局部变量:

private List<String> alerts;
....
@PostConstruct
public void setup() {
alerts = Arrays.stream(MenuAlertEnum.values())
.map(MenuAlertEnum::getAlertName)
.collect(Collectors.toList());
}

关于java - 在 SpringBoot 项目的 RestController 中使用静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52333530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com