コードを Spring の XML 構成から Java 構成に移動しました。すべてが機能していますが、プロトタイプ Bean をどのように実装したかについて質問があります。なんとなく気持ち悪い!
私はこのようにBeanクラスを書きました:
@Component
@Scope("prototype")
public class ProtoBean {
...
}
次に、Bean を使用します。これは機能しますが、よくわからない部分です。
@Component
public class BeanUser implements ApplicationContextAware {
ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext context)throws BeansException
{
this.context = context;
}
public void getProtoBean() {
ProtoBean protoBean = context.getBean(ProtoBean.class);
}
}
これにより、プロトタイプ化された Bean が得られます。単体テストでは、モックを使用して setApplicationContext と呼ばれるコンテキストをモックし、モックの getBean 呼び出しでモック ProtoBean を返すようにしました。だから、すべてが順調です。
ファクトリを使用して XML でこれを行いましたが、あまりうまくいかないようだったので、ここに行き着きました。しかし、コンテキストなしでこれを行う方法はありますか? それとももっと良い方法ですか?
ありがとう!