親と子の 2 つの Bean があります。Protoype スコープとして宣言した子 Bean。
親クラスの子のメソッドを呼び出すために、新しい子オブジェクトを使用したい。たとえば。以下の例では、ステートメント 1 が別の子オブジェクトでメソッドsayHiを呼び出し、ステートメント 2 が別の子オブジェクトでsayHi1を呼び出します。
1 つの方法は、 ApplicationContextAwareを実装しcontext.getBean("")
、子のメソッドを呼び出す前に使用して新しい子オブジェクトを取得することです。しかし、私はそれをしたくありません。
他の代替手段はありますか?
@Component
public class Parent{
@Autowired
Child child;
public void sayHello(){
child.sayHi(); -------------- (1)
}
public void sayHello1(){
child.sayHi1(); --------------- (2)
}
}
@Component
@Scope(value=BeanDefinition.SCOPE_PROTOTYPE)
public class Child{
public void sayHi(){
System.out.println("Hi Spring 3.0");
}
public void sayHi1(){
System.out.println("Hi1 Spring 3.0 ");
}
}