java - 使用默认变量设置 @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;
解决方案
那么你可以做到这一点@Value
试试这个:
@Value("${currentYear:#{(T(java.time.Year).now().getValue())}}")
private int year;
推荐阅读
- angular - Azure DevOps Pipelines - 发布测试结果
- python - python中的自定义语音
- azure-web-app-service - 从 Linux 应用服务访问 VM 共享目录
- openid-connect - 将 checksession 端点添加到 OpenIddict ASOS
- openstack - ResourceInError:resources.bigip_instance:由于\“消息:'NoneType'对象不可迭代,代码:500\“”而进入状态错误,
- docker - 在 Visual Studio 2019 中将共享驱动器装载为卷
- angular - Firebase:...node_modules\firebase\app\dist\app\index 没有导出的成员“用户”
- java - 为什么 Collectors.partitioningBy 返回 Object 而不是 Map
- java - 在 @Value.Immutable 构建器的设置器中省略大写字母
- c# - “IServiceCollection”不包含“配置”的定义,即使 IntelliSense 另有建议