martedì 30 agosto 2011

Come gestire la configurazione di progetto


Ogni progetto web ha bisogno di qualche ambiente di configurazioni specifiche. Credenziali del database, url radice, impostazioni smtp, solo per citarne alcuni. E 'una domanda ricorrente su StackOverflow, e ho visto un sacco di variazioni sul tema, e qui io descrivere quello che penso sia meglio.
  • mettere tutte queste proprietà in un file. proprietà (per esempio application.properties)
  • che hanno application.properties seduto fuori l'applicazione web. Non è in bundle con la costruzione
  • fornire una riga di comando che indica dove si trova quel file. Per esempio-Dconfig.location = / home / vi / config
  • all'avvio dell'applicazione (in un ServletContextListener solito) caricare il file e metterlo in una mappa. Può essere java.util.Properties o una HashMap
  • per gli utenti di primavera - l'uso contesto <: proprietà segnaposto-configuratore location = "file di config.location ://${} / application.properties". Altri framework avrà probabilmente qualche meccanismo per il caricamento di tali proprietà globali
  • contenere uno schema di file proprietà nel repository SCM. Dovrebbe contenere tutte le proprietà, ma i loro valori sono irrilevanti - cambieranno in ogni ambiente
  • ops è la squadra che potrebbero beneficiare di versioni diverse configurazioni ambiente (produzione, qa, stadio), in modo separato / cartella config / sottoprogetto possono essere create e tutti specifici dell'ambiente proprietà possono essere memorizzate. Quando si aggiunge un promotori immobiliari andiate e aggiornare tutti i file di conseguenza
  • proprietà che non dipendono l'ambiente, ma sono ancora globali per il progetto, possono essere memorizzati all'interno del progetto (src / main / resources per maven), e impegnati a SCM. Essi possono essere unite con le proprietà esterno all'avvio (incorporata nella memoria, che è)
Gli sviluppatori possono facilmente eseguire i loro progetti in questo modo. Ops possibile distribuire facilmente si basa su ambienti diversi. La costruzione rimane ambiente-agnostico.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.