何を間違えたのですか?どうすれば問題を解決できますか?
ここに :
Map<String,String> someMap = (Map<String,String>)getApplicationContext().getBean("someMap");
返されるため、通常は使用しないレガシーメソッドを使用しますObject。
Object getBean(String name) throws BeansException;
BeanファクトリからBeanを取得(シングルトンの場合)/作成(プロトタイプの場合)する方法は次のとおりです。
<T> T getBean(String name, Class<T> requiredType) throws BeansException;
次のように使用します:
Map<String,String> someMap = app.getBean(Map.class,"someMap");
コンパイルされますが、すべてのMapオブジェクトが必ずしも必要ではないため、未チェックの変換警告が表示されますMap<String, String>オブジェクトであるとます。
だが <T> T getBean(String name, Class<T> requiredType) throws BeansException;、ジェネリックコレクションなどのBeanジェネリッククラスでは、パラメータとして複数のクラス、つまりコレクションタイプとそのジェネリックタイプを指定する必要があるため、これでは不十分です。
この種のシナリオでは、一般的に、直接使用しない方が良い方法です。 BeanFactoryメソッドを、フレームワークにBeanを注入させるのが。
Bean宣言:
@Configuration
public class MyConfiguration{
@Bean
public Map<String, String> someMap() {
Map<String, String> someMap = new HashMap();
someMap.put("some_key", "some value");
someMap.put("some_key_2", "some value");
return someMap;
}
}
豆の注入:
@Autowired
@Qualifier("someMap")
Map<String, String> someMap;