java - 来自类字段/成员的 Spring SPEL 默认 @Value
问题描述
如何从类字段/成员设置@Value 默认值?我有一个带有 @Value 注释字段的 Spring @Bean 类,我需要该字段的默认值来自类成员/字段值。在我的示例中,我需要 maxNumOfThreads 字段从 DEFAULT_MAX_NUM_OF_THREADS 中获取其默认值。
@Configuration
public class AppConfig {
@Value("${jobs.max-num-of-threads:....??..}") // <<== howto ?
private Integer maxNumOfThreads;
public final Integer DEFAULT_MAX_NUM_OF_THREADS = 10;
}
我该怎么做呢 ?
解决方案
类字段默认值可以是使用 spel '@' bean 引用语法的引用:@beanName.fieldName
例如:当 bean 名称为 'AppConfig' 并且我们需要引用的字段为 DEFAULT_MAX_NUM_OF_THREADS@appConfig
时用作 bean 名称(类名 AppConfig 以小写字母开头)点 '.' 字段名称。借助于:@appConfig.DEFAULT_MAX_NUM_OF_THREADS
@Configuration
public class AppConfig {
@Value("#{'${jobs.max-num-of-threads:}' ?: @appConfig.DEFAULT_MAX_NUM_OF_THREADS}")
private Integer maxNumOfThreads;
public final Integer DEFAULT_MAX_NUM_OF_THREADS = 10;
@PostConstruct
public void init(){
System.out.println("@PostConstruct init() - in.");
}
}
由 yl.
推荐阅读
- python - 使用条件制作 Python 聊天机器人时的语法错误
- github - Github 邀请会员按钮不起作用
- python - ImportError:没有名为“camelot.admin.application_admin”的模块
- ruby-on-rails - “共享”功能的请求规范应该是什么样子?
- android - 如何将 ListView 中的所有小部件垂直居中?
- python - 附加数据帧时重新索引错误
- c++ - 运算符重载(对象添加)
- javascript - 将弹出栏与 Bootstrap 5 集成
- python - 如何让 Django 应用程序使用 PayPal 向其用户汇款
- json - 当我从 Flutter 中的 API 获取数据时出现问题。请帮我获取数据并显示它。我的数据是这样的