Legare direttamente il modulo al tuo modello aiuta molto a sbarazzarsi del codice della piastra, ma ciò significa che il tuo modello deve avere un getter / setter per ogni proprietà altrimenti non sarebbe possibile. Un'altra scelta sarebbe quella di creare un altro livello (DTO) solo per trasportare i dati da / verso il modulo e quindi è possibile avere un modello di dominio ricco non necessariamente con getter / setter per ogni attributo ma ciò significa duplicazione di campi e codice di convalida.
Ad esempio, in questo momento sto facendo un'applicazione per la posta elettronica. Sappiamo che abbiamo già l'API Java Mail, un buon modello di dominio ricco. Tuttavia, il modo in cui è progettato rende impossibile associare il mio modulo Web a quel modello. Sono costretto a creare un DTO per acquisire i dati e quindi passarlo all'API Java Mail. Proprio come in questo esempio se il mio modello di dominio fosse come questo, lo stesso accadrebbe.
Da documentazione Spring MVC :
Instead, it is often preferable to bind directly to your business objects.
Reusable business code, no need for duplication. Use existing business objects as command or form objects instead of mirroring them to extend a particular framework base class.
Fai framework web MVC come Spring MVC e Struts 2 , favorisci modello di dominio anemico per evitare duplicazioni?