ここに私は今すぐ正しく動作します。それがないすべての項目の配列を返し市場のクラスは、オブジェクトされています。私はクラスの市場を持っているSpring Javaのコンフィグレーションを使用してシングルトンBeanでプロトタイプオブジェクトを生成する方法
class market {
public ArrayList<Items> createItems(HashMap<String,String> map) {
ArrayList<Items> array = new ArrayList<Items>();
for (Map.Entry<String, String> m : map.entrySet()) {
Item item = new Item();
item.setName(m.key());
item.setValue(m.value());
array.add(item);
}
return array;
}
}
クラス項目は、名前と値
のためにゲッターとセッターとの単純なクラスです。ここ方法です私の設定ファイルを検索します:私は自分のコードを変更したい方法
@Configuration
public class MarketConfig {
@Bean
public Market market() {
return new Market();
}
}
:(理由:私は
をたくありませんItem item = new Item();
その時の方法。
class market {
public Item item;
//getters and setters for item
public ArrayList<Items> createItems(HashMap<String,String> map) {
ArrayList<Items> array = new ArrayList<Items>();
for (Map.Entry<String, String> m : map.entrySet()) {
item.setName(m.key());
item.setValue(m.value());
array.add(item);
}
return array;
}
}
@Configuration
public class MarketConfig {
@Bean
@Scope("prototype")
public Item item() {
return new Item();
}
@Bean
public Market market() {
Market bean = new Market();
bean.setItem(item());
}
}
私がitem()を呼び出すたびに新しいbeanを与えることは知っています。 これで、createItemsメソッドのforループの各繰り返しで新しいBeanが必要になりました。どのように私は春に私に与えることができます。私が知っている
一つの方法は、
applicationContext context = new AnnotationConfigApplicationContext();
context.getBean(Item.class);
を行いますされているが、私の仕事を成し遂げるための他の方法があります。 おかげ
@configurationを使って解を与えることができるかどうかがわかります。そうでなければ私はそれを受け入れるだろう。私はオンラインでJavaベースのスプリング設定 – javaMan
@raviで検索メソッドを使用する方法をチェックします、私の更新を見てくださいトリックは簡単です:) –
ちょうど今、私はこのリンクを発見しました。私はここで同様の解決策を見つけました。 http://static.springsource.org/spring/docs/3.0.0.RC3/reference/html/ch03s11.html。 – javaMan