首页 > 解决方案 > 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);

标签: javaspring-bootpropertiesconfiguration

解决方案


Spring 从 application.properties(或 yml)加载属性。尝试将属性从 export-fields.yml 移动到 application.yml


推荐阅读