Domanda

Esiste un equivalente Java a App.Config di .NET?

In caso contrario, esiste un modo standard per mantenere le impostazioni dell'applicazione, in modo che possano essere modificate dopo la distribuzione di un'app?

È stato utile?

Soluzione

Per WebApps, web.xml può essere utilizzato per memorizzare le impostazioni dell'applicazione.

Oltre a ciò, puoi utilizzare le Proprietà class per leggere e scrivere file di proprietà.

Puoi anche consultare Preferenze , utilizzata per leggere e scrivere le preferenze del sistema e dell'utente. È una classe astratta, ma puoi ottenere oggetti appropriati usando userNodeForPackage (ClassName.class) e systemNodeForPackage (ClassName.class) .

Altri suggerimenti

Per mettere il suggerimento di @ Powerlord (+1) sull'uso della classe Properties nel codice di esempio:

public class SomeClass {
    public static void main(String[] args){
        String dbUrl = "";
        String dbLogin = "";
        String dbPassword = "";     
        if (args.length<3) {
            //If no inputs passed in, look for a configuration file
            URL configFile = SomeClass.class.getClass().getResource("/Configuration.cnf");
            try {
                InputStream configFileStream = configFile.openStream();
                Properties p = new Properties();
                p.load(configFileStream);
                configFileStream.close();

                dbUrl      = (String)p.get("dbUrl");
                dbLogin    = (String)p.get("dbUser");
                dbPassword = (String)p.get("dbPassword");               
            } catch (Exception e) {  //IO or NullPointer exceptions possible in block above
                System.out.println("Useful message");
                System.exit(1);
            }
        } else {
            //Read required inputs from "args"
            dbUrl      = args[0];
            dbLogin    = args[1];
            dbPassword = args[2];           
        }
        //Input checking one three items here
        //Real work here.
    }
}

Quindi, nella radice del contenitore (ad esempio nella parte superiore di un file jar) posizionare un file Configuration.cnf con il seguente contenuto:

#Comments describing the file
#more comments
dbUser=username
dbPassword=password
dbUrl=jdbc\:mysql\://servername/databasename

Non mi sembra perfetto (sarei interessato a sentire miglioramenti) ma abbastanza buono per le mie esigenze attuali.

Il modo semplice è semplicemente avere un file delle proprietà, ad esempio myapp.properties, con tutte le tue impostazioni. Non è un modo molto avanzato per fare le impostazioni ma è sufficiente, oppure puoi avere la tua configurazione basata su XML, o ottenerli da un database, ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top