Domanda

Durante la sperimentazione di questa domanda sulle raccolte in Spring.NET , ho scoperto che Spring può iniettare una dipendenza usando un setter privato. Ho due domande:

  1. Questo è documentato ovunque?
  2. Si consiglia l'uso di setter privati?

La documentazione dice :

  

DI basato su setter viene realizzato chiamando i metodi setter sui tuoi oggetti ...

Certo, non dice esplicitamente i metodi di setter pubblico , ma è quello che avevo sempre ipotizzato. Sto usando la versione 1.0.2 su .NET 3.5.

È stato utile?

Soluzione

Don,

no, questo non è documentato asfaik, soprattutto perché non lo consigliamo. La funzione è lì per supportare rari caratteri maiuscoli quando si tratta di librerie legacy / di terze parti.

Dovresti usare solo setter pubblici che puoi anche chiamare dai tuoi test unitari!

hth, Erich

Altri suggerimenti

La versione Java di Spring utilizza la riflessione, che può raggiungere quei setter privati. Va bene, perché non vorrai costringere qualcuno a cambiare un oggetto immutabile solo per soddisfare Spring.

Personalmente, preferisco usare l'iniezione del costruttore ogni volta che posso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top