gpt4 book ai didi

java - Spring-Boot:一个 @Component 类,用于保存数据库表对象列表

转载 作者:行者123 更新时间:2023-12-01 09:07:22 25 4
gpt4 key购买 nike

我需要找到一个合适的解决方案,让 Spring-Boot @Component (单例)类保存数据库表对象列表,这些对象可以在应用程序的整个生命周期中访问。我需要根据参数获取特定语言列值(可能有很多语言列)的值。

我的想法是这样做:

@Component
public class CardTypeValueComponent {

private List<CardTypesTabModel> listOfCardTypes;
private CardTypesModelRepository cardTypesModelRepository;

private static final String UNKNOWN = "-";

@Autowired
public CardTypeValueComponent(CardTypesModelRepository cardTypesModelRepository) {
Assert.notNull(cardTypesModelRepository, "CardTypesModelRepository cannot be null");
this.cardTypesModelRepository = cardTypesModelRepository;
}

@PostConstruct
private void getAllCardTypesFromDb() {
this.listOfCardTypes = cardTypesModelRepository.findAll();
}

public String getCardTypeLanguageValue(int cardType, String language) {
String cardTypeLangValue = UNKNOWN;
for (CardTypesTabModel cardTypesTabModel : listOfCardTypes) {
if (cardTypesTabModel.getTypeId() == cardType && "spanish".equals(language)) {
cardTypeLangValue = cardTypesTabModel.getSpanishValue();
} else {
cardTypeLangValue = cardTypesTabModel.getEnglishValue();
}
}
return cardTypeLangValue;
}
}

这是完成此类任务的正确方法,同时记住表对象列数将来可能会增加吗?

请原谅我的伪代码。谢谢。

添加了更多详细信息:CardTypesTabModel 实体类:

@Entity 
public class CardTypesTabModel {
private int type;
private String englishValue;
private String spanishValue;
// other values, getters & setters
}

最佳答案

您想要做的是重新发明缓存机制。

您可以考虑中继 Spring Cache Abstraction http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html 然后选择 JCache (JSR-107)作为实现。

关于java - Spring-Boot:一个 @Component 类,用于保存数据库表对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41159400/

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