Donc, depuis que j'utilise Spring, si je devais écrire un service qui a des dépendances, je ferais ce qui suit :
@Component
public class SomeService {
@Autowired private SomeOtherService someOtherService;
}
Je suis maintenant tombé sur un code qui utilise une autre convention pour atteindre le même objectif
@Component
public class SomeService {
private final SomeOtherService someOtherService;
@Autowired
public SomeService(SomeOtherService someOtherService){
this.someOtherService = someOtherService;
}
}
Ces deux méthodes fonctionneront, je le comprends. Mais y a-t-il un avantage à utiliser l'option B ? Pour moi, cela crée plus de code dans la classe et le test unitaire. (Avoir à écrire le constructeur et ne pas pouvoir utiliser @InjectMocks)
Y a-t-il quelque chose qui m'échappe ? Le constructeur autowired fait-il autre chose que d'ajouter du code aux tests unitaires ? S'agit-il d'un moyen plus approprié de réaliser l'injection de dépendances ?
0 votes
En rapport : softwareengineering.stackexchange.com/q/300706/172464
1 votes
Lequel est Option A y Option B ?