Lösung Shell-Skript mit
Ich werde vorschlagen, um Ihre Eingabedatei mit Datei-Beobachter zu überwachen, und wenn eine Datei Änderung erkannt, können Sie Ihre App mit Shell-Skripten neu starten.
Sie haben keine Plattforminformationen zur Verfügung gestellt.
Wenn Ihre Produktion auf Linux ist, dann können Sie watch verwenden Änderungen in Ihrer Eingabedatei zu überwachen.
Lösung mit Java
Wenn Sie die Datei ändern in Java erfassen möchten, können Sie Filewatcher,
final Path path = FileSystems.getDefault().getPath(System.getProperty("user.home"), "Desktop");
System.out.println(path);
try{
final WatchService watchService = FileSystems.getDefault().newWatchService();
final WatchKey watchKey = path.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY);
while (true) {
final WatchKey wk = watchService.take();
for (WatchEvent<?> event : wk.pollEvents()) {
//we only register "ENTRY_MODIFY" so the context is always a Path.
final Path changed = (Path) event.context();
System.out.println(changed);
if (changed.endsWith("myFile.txt")) {
System.out.println("My file has changed");
}
}
// reset the key
boolean valid = wk.reset();
if (!valid) {
System.out.println("Key has been unregisterede");
}
}
}
nun aus Java neu zu starten Sie Ihre App verwenden können, müssen Sie Starten Sie Ihre Anwendung von Ihrer Hauptmethode aus.
Erstellen Sie einen separaten Thread, der Ihre Eingabedatei überwacht und Ihre App in einem separaten Thread startet.
Wenn Sie Änderungen an Ihrer Eingabedatei feststellen, unterbrechen oder beenden Sie den App-Thread und starten Sie Ihre Anwendung erneut in einem neuen Thread.
Mögliche Duplikate von [programmgesteuert Neustart Spring Boot-Anwendung] (http://StackOverflow.com/Questions/29117308/programmmatic-restart-Spring-Boot-Application) –