首页 > 解决方案 > 使用默认变量设置 @Value 注释

问题描述

是否可以默认使用带有变量的@Value 注释?

我有一个变量processingYear,我想从属性中读取,如果它无法从属性中读取,我想将当前年份分配给变量。

@Value("${processing_year:2021}")
int processingYear;

使用上面的特定代码,我可以processingYear从属性文件中读取,并为其赋值,如果从属性读取失败,变量将设置为 2021。

但是,我看不到将当前年份分配为默认变量的方法currentYear。以下是我的想象,并想看看是否有任何东西可以为其分配默认变量。

    LocalDate date = LocalDate.now();
    Locale locale = Locale.US;

    int currentYear = Integer.parseInt(date.format(DateTimeFormatter.ofPattern("yyyy",locale)));

    @Value("${process_year:currentYear}")
    int processingYear;

标签: javaspring-bootspring-annotations

解决方案


那么你可以做到这一点@Value

试试这个:

@Value("${currentYear:#{(T(java.time.Year).now().getValue())}}")
private int year;

推荐阅读