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.