Lancer une méthode dès qu'un fichier est modifié
Bonjour à tous !
J'ai un fichier .properties, et j'aimerai que les paramètres qui sont dedans se mettent automatiquement à jour dans le programme java qui les utilises.
Pour l'instant, j'ai une classe singleton Parameters qui charge ces paramètres :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
package utils;
import java.io.FileInputStream;
import java.util.Properties;
public final class Parameters {
/*---------- Database information ----------------*/
private static final String HOST = "host";
private static final String DB_NAME = "dbName";
private static final String USER_NAME = "userName";
private static final String PASSWORD = "password";
private static final String PORT = "port";
/*-------------------------------------------------*/
private static final int PORT_DEFAULT = 9099;
private static final String PROPERTY_FILE_PATH = "c:/properties.properties";
private static final String NULL = "null";
private Properties properties = new Properties();
/*********** SINGLETON PATTERN ***************/
private static Parameters instance = new Parameters();
public static Parameters getInstance() {
return Parameters.instance;
}
private Parameters() {
try {
properties.load(new FileInputStream(PROPERTY_FILE_PATH));
} catch (Exception e) {
e.printStackTrace();;
}
}
/*********************************************/
private String getSafeString(String key) {
Object o = properties.get(key);
if ( (o == null) || ( ((String) o).equals(NULL) ) ) {
return null;
}
return (String) o;
}
/********** DATABASE INFORMATION *************/
public String getHost() {
return this.getSafeString(HOST);
}
public String getDBName() {
return this.getSafeString(DB_NAME);
}
public String getUserName() {
return this.getSafeString(USER_NAME);
}
public String getPassWord() {
return this.getSafeString(PASSWORD);
}
public int getPort() {
String s = this.getSafeString(PORT);
if (s == null)
return PORT_DEFAULT;
return Integer.parseInt(s);
}
} |
J'aimerais donc savoir si il est possible que cette instance se mette à jour automatiquement dès que le fichier properties est modifié sans avoir à relancer le programme java.
Merci d'avance !