Question

Tout en expérimentant avec cette question sur les collections dans Spring.NET , j’ai découvert que Spring peut injecter une dépendance à l’aide d’un paramètre privé. J'ai deux questions:

  1. Est-ce documenté n'importe où?
  2. L'utilisation de setters privés est-elle recommandée?

La documentation dit :

  

La DI basée sur un setter est réalisée en appelant des méthodes de définition sur vos objets ...

Certes, cela ne dit pas explicitement les méthodes de définition public , mais c'est ce que j'avais toujours supposé. J'utilise la version 1.0.2 sur .NET 3.5.

Était-ce utile?

La solution

Don,

Non, cela n’est pas documenté, car nous ne le recommandons pas. Cette fonctionnalité est là pour prendre en charge les majuscules lorsqu’il s’agit de bibliothèques héritées / tierces.

Vous ne devez utiliser que des setters publics que vous pouvez également appeler depuis vos tests unitaires!

hth, Erich

Autres conseils

La version Java de Spring utilise la réflexion, ce qui peut atteindre ces installateurs privés. C’est bien, car vous ne voudriez pas forcer quelqu'un à changer d'objet immuable pour satisfaire le printemps.

Personnellement, je préfère utiliser l’injection de constructeur chaque fois que je le peux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top