Appena iniziato in primavera, la mia preferenza è la configurazione XML delle annotazioni. Corretto o no?

1

Dopo aver letto alcuni dei documenti di Spring, la mia inclinazione è verso l'uso di un file di configurazione XML piuttosto che delle annotazioni sulle classi stesse. Il mio ragionamento è che così facendo eviti di legare i tuoi POJO a un particolare framework.

In base alla tua esperienza con Spring, ci sono dei vantaggi che la configurazione XML ha su una configurazione basata su annotazioni, e se non quali sono gli svantaggi?

    
posta John Munsch 23.05.2012 - 15:53
fonte

3 risposte

4

Molte delle annotazioni Spring sono ora standardizzate (ad es. CDI per l'iniezione delle dipendenze), quindi non ti stai affatto legando a Spring usandole. E per quelli che non lo sono: la tua applicazione non funzionerà senza la funzionalità, vero? Quindi è fondamentalmente legato a Spring, indipendentemente dal fatto che tu tenti di nascondere questo fatto.

Le annotazioni sono molto migliori per la manutenibilità perché sono posizionate con il codice a cui si applicano, quindi le vedi quando leggi il codice. E richiedono meno duplicazioni della logica perché la classe a cui si applicano è implicita nel loro posizionamento, mentre i file di configurazione XML devono sempre elencare il nome della classe.

La maggior parte delle persone preferisce le annotazioni al giorno d'oggi per questi motivi.

    
risposta data 23.05.2012 - 17:26
fonte
1

Per prima cosa, guarda la tua organizzazione. A seconda dell'esperienza e della capacità di apprendere nuove cose, Spring XML astrae logica e funzionalità rimuovendo la catena di dipendenze visive dai file Java. Se il tuo team di sviluppo non è abituato a questo tipo di modello di sviluppo, può essere una curva di apprendimento ripida. Non sottovalutare questo punto. Ho fatto questo errore con un gruppo di sviluppatori molto acuti e sono rimasto sorpreso dalla quantità di sovraccarico che ha aggiunto alla squadra.

Ho scoperto che l'utilizzo di Annotazioni di primavera o di qualsiasi annotazione Java per quella materia offriva significative riduzioni generali di sviluppo. Ciò è dovuto al collegamento visivo diretto che hanno fornito e alla perfetta integrazione con i tuoi IDE preferiti. Avere la possibilità di utilizzare gli strumenti correnti del tuo ciclo di sviluppo come eseguire il drill-down nel codice sorgente, impostare i punti di interruzione del debug, i tool-tips Javadoc, ecc. Non è qualcosa di scontato.

Ora so che puoi ottenere un set di strumenti Spring per Eclipse, non certo degli altri, ma stai di nuovo aggiungendo un altro livello di apprendimento alla tua squadra.

    
risposta data 23.05.2012 - 18:22
fonte
0

Mi piace usare le annotazioni per cose che

  • sono essenziali (come @Service)
  • non cambierà senza una ridistribuzione (come i nomi delle colonne del database)

Mi piace usare le annotazioni per

  • global config (aspetti)
  • cose che potrebbero essere modificate dagli utenti di un componente (sicurezza, nomi di ruolo, riferimenti jndi dell'origine dati), ecc.

C'è un thread in coderanch Mi piace molto su questo argomento. Craig Walls - l'autore di "Spring in Action" spiega perché si è evoluto dal non usare mai le annotazioni al suo stato attuale.

    
risposta data 29.06.2012 - 22:03
fonte

Leggi altre domande sui tag