¿Existe un Java equivalente a .NET App.Config?Java equivalente a app.config?
¿De no ser así, existe una forma estándar de mantener la configuración de la aplicación, de modo que puedan cambiarse después de distribuirla?
¿Existe un Java equivalente a .NET App.Config?Java equivalente a app.config?
¿De no ser así, existe una forma estándar de mantener la configuración de la aplicación, de modo que puedan cambiarse después de distribuirla?
Para WebApps, web.xml se puede usar para almacenar configuraciones de aplicaciones.
Aparte de eso, puede usar la clase Properties para leer y escribir archivos de propiedades.
Es posible que también desee consultar la clase Preferences, que se utiliza para leer y escribir las preferencias del sistema y del usuario. Es una clase abstracta, pero puede obtener objetos apropiados usando userNodeForPackage(ClassName.class)
y systemNodeForPackage(ClassName.class)
.
La manera simple es simplemente tener un archivo de propiedades, por ejemplo, myapp.properties, con todas sus configuraciones. No es una forma muy avanzada de hacer ajustes pero es suficiente, o puede tener su propia configuración basada en XML, u obténgalos de una base de datos, etc.
Para poner @ sugerencia de Powerlord (1) de utilizar la clase Properties
en ejemplo de código:
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.
}
}
A continuación, en la raíz del contenedor (por ejemplo, la parte superior de un archivo JAR) colocar un archivo Configuration.cnf
con el siguiente contenido:
#Comments describing the file
#more comments
dbUser=username
dbPassword=password
dbUrl=jdbc\:mysql\://servername/databasename
Este sentir no es perfecto (yo estaría interesado en escuchar mejoras) pero lo suficientemente bueno para mis necesidades actuales.
en serio? ¿Entonces ejecutas el lector de flujo sobre el archivo para obtener la configuración? En el caso de clases múltiples, ¿necesitará algo así como una clase de ayuda que pueda usarse en todos lados? ¿Es esta la mejor solución que Java puede ofrecer aquí? Simplemente parece muy ingenuo. – tom33pr
Esto es lo mejor que pude manejar, para mis necesidades, en 2013. Creo que la solución más general generalmente está envuelta en un servidor de aplicaciones. Me viene a la mente la frase "enterprise java beans", aunque nunca he trabajado en ese entorno personalmente. – Pursuit
¿Puede dar más información sobre la primera opción: "web.xml se puede usar para almacenar la configuración de la aplicación"? ¿Está sugiriendo almacenar la configuración de la aplicación como 'context-param's? ¿O algo más? – theyuv
Hay algunos tipos diferentes de params que puede poner en web.xml, pero probablemente quise decir 'context-param'. No recuerdo, ya que han pasado 7,5 años desde entonces. – Powerlord