Cómo lo hacemos en .NET
En .NET se encuentra integrado a Visual Studio. En un proyecto de consola simplemente agregamos un "Application Configuration File" que nombra como App.config. Este archivo se renombrará a "NombreDeEjecutable.config" al momento de compilar.
Para leerlo, usamos los métodos estáticos de la clase ConfigurationManager.
Cómo hacer algo similar en Java
Java tiene un objeto llamado "Properties" que gestiona objetos para guardar configuraciones y contiene métodos de escritura y lectura a disco.
Usé este objeto para crear mi helper llamado (obviamente) ConfigurationManager. Lo implementé cómo singleton de modo que la primera vez que lo invocamos lee las configuraciones desde disco y luego revisa todo desde memoria.
Este es el código que agregué a mi librería de helpers:
package ar.com.bdamian.configuration;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class ConfigurationManager {
private static Properties p = null;
private static Properties getInstance() {
if (p==null) {
p = new Properties();
try {
p.load(new FileInputStream("config.properties"));
} catch (IOException ex) {}
}
return p;
}
public static String getAppSetting(String appSetting) {
Properties prop = getInstance();
return prop.getProperty(appSetting);
}
}
Luego, para usarlo en un proyecto hay que agregar un archivo de texto llamado "config.properties" a nivel de la carpeta del proyecto conteniendo los datos necesarios.
En mi ejemplo fue un ConnectionString:
connectionString=jdbc\:sqlserver\://localhost\\SQLEXPRESS\:1433;DatabaseName\=Northwind;user\=usuario;Password\=password
Por ultimo, lo llamamos para obtener la configuración de esta forma:
String connString = ConfigurationManager.getAppSetting("connectionString");
No se si esta es la mejor forma, pero como vengo de C# .NET, me resulta cómodo hacerlo así.