Spring-boot:一个@component类,可以保留数据库表对象的列表



我需要找到一个适当的解决方案,以使spring-boot @component(singleton)类保存数据库表对象的列表,该列表可以在应用程序的整个寿命中访问。我需要根据参数获得特定语言列值的值(可能有很多语言列)。

我的想法是这样做:

@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
}

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

您可以考虑在春季高速缓存抽象http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html上继电器,然后选择JCACHE(JSR-107)作为实现。

相关内容

  • 没有找到相关文章

最新更新