java - 使用依赖注入(inject)连接多个配置类

标签 java spring dependency-injection spring-boot config

我在 Spring 有工作配置类。我尝试使用依赖注入(inject)通过配置映射替换硬编码字符串。

@Configuration
@Component
public class BwlConfiguration {

    @Resource(name="loadParameters")
    private Map<ConfigEnum, String> conf;

    private String address;

    public BwlConfiguration() {
        address = conf.get(SPI_BL);
    }
...
}

提供conf映射的类:

@Configuration
@Component
public class ConfigLoader {

    @Resource(name="returnEnv")
    private Map<String, String> env;

    @Bean
    public Map<ConfigEnum, String> loadParameters() throws ParameterNotSetException{
        ....
        return parameterMap;
    }

提供环境映射的类:

@Configuration
public class EnvConf {


    @Bean
    public Map<String, String> returnEnv(){
        return System.getenv();
    }   
}

当我运行程序时,在 address = conf.get(SPI_BL); 行抛出 nullPointerException。我尝试用 @Import(...class) 替换 @Component ,结果相同,并且失去了注入(inject)点。 我使用这些注释是否错误?谢谢

最佳答案

我将 BwlConfiguration 中的构造函数替换为:

@Bean
public String address(){
    return conf.get(SPI_BL);
}

关于java - 使用依赖注入(inject)连接多个配置类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37137722/

相关文章:

java - 如何使用 for 循环制作一堆 10 个荞麦华夫饼?

Spring MVC 上传文件 - 内容类型如何确定?

spring - 如何在 spring 中缓存对象列表?

language-agnostic - 非类的依赖注入(inject)

php - 将请求注入(inject) Symfony2 实体

javascript - 正则表达式不包含某些词

java - 默认情况下未选中抽屉导航项目

java - 按实体中未包含的列对数据表进行排序/过滤

java - Querydsl maven编译错误: QClass.类不存在

java - 使用 pico 容器设置多个装饰器