Ho due bean, padre e figlio. Fagiolo secondario dichiarato come ambito Protoype.
Desidero che un nuovo oggetto figlio venga utilizzato per chiamare il metodo di qualsiasi figlio nella classe Parent. Per es. nell'esempio seguente, voglio l'istruzione 1 chiama il metodo sayHi su un altro oggetto figlio e l'istruzione 2 chiama direHi1 su un altro oggetto figlio.Fagiolo contrassegnato con ambito prototipo non funzionante in primavera
Un modo è quello di implementare ApplicationContextAware e ottenere nuovo oggetto figlio utilizzando context.getBean("")
prima di chiamare il metodo di qualsiasi figlio. Ma io non voglio farlo.
C'è qualche altra alternativa?
@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 ");
}
}
Se era configurazione XML allora si dovrebbe utilizzare l'approccio di ricerca-metodo, ma che non è ancora disponibile in annotazioni, credo. http://stackoverflow.com/questions/3891997/how-to-do-spring-lookup-method-injection-with-annotations –