2016-06-27 5 views
-2

Wir arbeiten an Spring Boot Application. Unsere Anwendung läuft drei Server (jvm). Sagen wir, diese drei sind: Server, Arbeiter und Myui. Diese drei laufen in der gleichen Reihenfolge von Server -> Arbeiter -> Myui. Von drei laufen zwei Tomcat Server.Um den Wert von der externen Konfiguration zu lesen

Mein Problem ist, dass der erste Server, wenn dann Tomcat 8080-Port-Standard erwirbt, ist es okay für mich. Aber wenn wir Myui laufen lassen, startet dies auch Tomcat, aber es wirft Ausnahme von "Address Already Bind" Ausnahme, weil 8080 bereits vom Server verbraucht wird.

Der Build haben drei Arten von Glas:

MyApplication

Config

  • application.properties
  • application.yml

server.jar

worker.jar

myui.jar

Jede dieser jar haben dieselben Dateien wie in Config-Ordner gegeben. Aber sie werden in das Glas eingebettet und sie werden nicht konfiguriert werden. In meinem Build darf der Benutzer die application.properties und application.yml aktualisieren.

Wir haben versucht mit "server.port" extern in application.properties als 8090 zu liefern. Es funktioniert gut in IDE. Aber es funktioniert nicht mit Build wie in Build Die Priorität von "/config/application.properties" ist mehr als nur innerhalb von jar (falls vorhanden) und es throw Adresse bereits binden Ausnahme.

Wie kann ich es in "/config/application.properties" konfigurieren, so dass es konfigurierbar sein kann, um myui zu starten. Wie kann ich auf diesen Port-Wert von externen Eigenschaften in meine Java-Ressourcenklasse zugreifen?

+0

Möchten Sie den Port immer angeben? – aksappy

Antwort

0

Sie könnten externe .properties verwenden, dies zu tun, Port-Konfiguration von application.properties und legt es in externen Dateien zu entfernen. In Spring Boot-Anwendung können Sie @PropertySource verwenden, um diese Konfigurationsdateien mit Umgebungsvariable zu enthalten.