Pas sûr que ce soit un ressort lié ou non:Comment ressort instancier cette classe et sa dépendance
J'ai une classe de haricots comme celui-ci
class BeanClass {
private ServiceA serviceA;
private ServiceB serviceB;
public BeanClass() {}
public void setServiceA(ServiceA serviceA) {
this.serviceA = serviceA;
}
public void setServiceB(ServiceB serviceB) {
this.serviceB = serviceB;
}
public void callService() {
serviceA.a();
serviceB.b();
}
}
et sa configuration:
<bean id="beanClass" class="BeanClass">
<property name="serviceA" ref="serviceA"/>
<property name="serviceB" ref="serviceB"/>
</bean>
mais j'instancie le bean avec un nouveau mot-clé dans une classe de contrôleur:
class ControllerClass {
public void someMethod() {
BeanClass beanClass = new BeanClass();
beanClass.callService();
}
}
mon problème est comment ServiceA et ServiceB sont instanciés correctement? puisque j'utilise new pour obtenir un objet de classe, et ne jamais définir son membre de champ.
Merci! Je sais que ce n'est pas une bonne pratique. Je veux juste m'assurer que Spring instancie son membre sur le terrain? par exemple. ServiceA, ServiceB. –
Il créera des instances pour les 2 propriétés que vous avez définies, puis vous appellera setters. – rooftop
merci! Vous voulez dire que Spring utilisera la définition du bean pour instancier BeanClass quand il verra le nouveau BeanClass(), même si je l'appelle à partir d'une méthode normale et l'assigner à une variable locale. –