java - Springboot @ConfigurationProperties 不注入
问题描述
我无法将我的属性文件 (export-fields.yml) 注入到地图中。我在资源文件夹中创建了属性文件,链接到属性源,为属性对象创建了配置,并使用 lombok 生成了 getter 和 setter,但仍然没有将任何内容填充到字段映射中(字段 = null)。有什么我想念的吗?这是我到目前为止的代码
FieldReplacerProperties.java
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "export")
@PropertySource("classpath:export-fields.yml")
public class FieldReplacerProperties {
private Map<String, String> fields;
public List<String> columnsToFields(List<String> columns){
columns.parallelStream().forEach(column -> fields.get(column));
return columns;
}
}
FieldReplacerConfiguration.java
@Getter
@Setter
@Configuration
@EnableConfigurationProperties(FieldReplacerProperties.class)
public class FieldReplacerConfiguration {
@Autowired
private FieldReplacerProperties fieldReplacerProperties;
public List<String> columnsToFields(List<String> columns){
return fieldReplacerProperties.columnsToFields(columns);
}
}
导出字段.yml
export:
fields:
id: number
name: programName
type: contractType
term: contractTerm
...
我如何访问它
@Autowired
private FieldReplacerConfiguration fieldReplacerConfiguration;
//replace columns with fields
fieldReplacerConfiguration.columnsToFields(columns);
解决方案
Spring 从 application.properties(或 yml)加载属性。尝试将属性从 export-fields.yml 移动到 application.yml
推荐阅读
- html - 如何检查视频是否支持对象拟合
- android - 如何使 CardView 居中并获得正确的颜色背景?
- python - Python import 语句只识别来自某些目录的包?
- javascript - Select2 渲染不好,样式坏了
- java - JAXB / Jackson 不允许为 HashSet 项目选择名称
- c# - 如何将列从一个数据网格复制到另一个
- apache - Perl CGI 的漂亮 URL
- azure - azure-iot-sdk-c 子模块/库版本
- python - 如何确定在 2 个 Pandas 条形图的叠加中,哪些条在顶部/最后绘制,其中一个使用 alpha
- java - 为什么使用事件溯源模式中的事件流?