I programmatori Java sono incoraggiati a memorizzare tutti i loro parametri configurabili in un file application.properties
dal quale caricano le proprietà durante il runtime o caricano durante l'avvio del programma e li assegnano alle variabili in un file di configurazione.
Il modo in cui l'ho usato è stato quello di memorizzare valori variabili che ho bisogno di modificare tra le esecuzioni del programma. Ho anche usato per archiviare stringhe di connessione al database e nomi di dominio del database in application.properties
, ma di recente li ho spostati nel codice perché è stato difficile commentare più righe quando si è scelto di passare da un server locale a un server di produzione.
sql.connString=someProductionString
#sql.connString=someLocalhostString
sql.domain=productionDB
#sql.domain=localhost
mongo.connString=someProductionString
#mongo.connString=someLocalhostString
mongo.domain=productionDB
#mongo.domain=localhost
Era più facile avere le righe precedenti all'interno del codice e cambiare solo una riga domain.isRunningOnLocal=true
in application.properties
.
Tuttavia, il mio capo dice:
1. Le stringhe di connessione al database dovrebbero essere in application.properties
stesso, poiché un altro sviluppatore che collabora sul mio codice troverebbe facile sapere quali sono quelle stringhe.
2. Dice anche che se ho delle variabili che devo modificare tra le esecuzioni del programma, dovrebbero essere inserite nel codice, all'interno dell'oggetto che utilizza tali variabili.
3. Quando il tester o la persona QA utilizza il mio progetto, sostituiscono il mio file application.properties
con un proprio file application.properties
che sarebbe rilevante per l'ambiente su cui sta eseguendo il programma.
Ha esplicitamente detto che devo dare la priorità a queste convenzioni al di sopra della mia convenienza e che solo le variabili generiche devono essere memorizzate in application.properties
; tutte le altre variabili devono essere memorizzate localmente all'oggetto che le utilizza. Apparentemente, ci sono molti progetti open source che usano il file delle proprietà in un certo modo.
Non lo compro perché tutte le ragioni sopra indicate perdono tempo. Perché passare del tempo a commentare e decomprimere linee e / o modificare variabili nel codice e ricompilare?
Esiste un modo consigliato di utilizzare application.properties
?