1
私は春に作業クラスを持っています。私は、ハードコードされた文字列を、依存性注入を使用して設定マップで置き換えようとしました。 confにマップを提供依存性注入を使用して複数の設定クラスを結ぶ
@Configuration
@Component
public class BwlConfiguration {
@Resource(name="loadParameters")
private Map<ConfigEnum, String> conf;
private String address;
public BwlConfiguration() {
address = conf.get(SPI_BL);
}
...
}
クラス:ENVマップを提供
@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();
}
}
、NullPointerExceptionがaddress = conf.get(SPI_BL);
ラインでスローされます。私は@Component
を@Import(...class)
に置き換えようとしましたが、同じ結果となってしまいます。 これらの注釈を間違って使用していますか?おかげ
Import' @; 'BwlConfiguration'、または' ConfigLoader'と 'EnvConf'の中で?いずれのクラスからも '@ Component'を削除しないでください。 '@Import({ConfigLoader.class、EnvConf.class})'を 'BwlConfiguration'に追加してください。 – Jesper
提案ありがとうございますが、結果は同じですが、まだNullPointerです。 – Wlad
@Jesperなぜ '@ Configuration'に' @ Component'が必要ですか? –