我在 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/