私はプロトタイプのスコープで次の春のbeanを持っています。 AppRunnerクラスでは、forループ内で新しいbeanをSpringで注入したいと考えています(ループカウントが2の場合、2つの新しいbeanを注入したいだけです)。Spring BeanはPrototypeスコープでどのように動作しますか?
しかし、SpringはSimpleBeanのsetterメソッドが呼び出されるたびに新しいBeanを挿入します。
SimpleBean.java
@Component
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE, proxyMode =
ScopedProxyMode.TARGET_CLASS)
public class SimpleBean {
private String id;
private Long value;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Long getValue() {
return value;
}
public void setValue(Long value) {
this.value = value;
}
}
AppRunner.java
@Component
public class AppRunner {
@Autowired
SimpleBean simpleBean;
public void execute(List<Output> results){
List<SimpleBean> finalResults = new ArrayList<SimpleBean>();
for(Output o : results){
simpleBean.setId(o.getAppId());
simpleBean.setValue(o.getAppVal());
finalResults.add(simpleBean);
}
}
}
Output.java
public class Output {
private String appId;
private Long appVal;
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public Long getAppVal() {
return appVal;
}
public void setAppVal(Long appVal) {
this.appVal = appVal;
}
}
ありがとうございます。 – Vel