Wie konfiguriere ich den TCP/IP-Port, der von einer Spring Boot-Anwendung gehört wird, so dass er nicht den Standardport 8080 verwendet?
Antworten
Zu viele Anzeigen?Um andere Antworten zu erweitern:
Es gibt einen Abschnitt in der Dokumentation zum Testen, der erläutert, wie der Port bei Integrationstests konfiguriert werden kann:
Bei Integrationstests erfolgt die Portkonfiguration mithilfe der Annotation @SpringBootTest
und der Werte von webEnvironment
.
Zufälliger Port:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
Sie können den Wert mithilfe von @LocalServerPort
einfügen, was demselben wie @Value("${local.server.port}")
entspricht.
- Beispiel:
Konfiguration des Tests mit zufälligem Port:
@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
...
@LocalServerPort //um den Portwert einzufügen
int port;
}
Definierter Port:
@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
Es nimmt den Wert aus server.port
, wenn er definiert ist.
- Wenn es mit
@TestPropertySource(properties = "server.port=9192")
definiert ist, überschreibt es andere definierte Werte. - Wenn nicht, nimmt es den Wert aus
src/test/resources/application.properties
(falls vorhanden). - Und schließlich, wenn es nicht definiert ist, beginnt es mit dem Standardwert
8080
.
Beispiel:
Konfiguration des Tests mit definiertem Port:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
Sie können den Port angeben, indem Sie das EmbeddedServletContainerFactory
-Bean in Ihrer Konfiguration überschreiben (java-basiert oder xml). Dort können Sie den Port für den verwendeten eingebetteten Servlet-Container festlegen. Bitte sehen Sie sich den Abschnitt "Unterstützung für eingebetteten Servlet-Container" und das Beispiel in Spring Boot - Core an. Hoffentlich hilft das.
Es gibt drei Möglichkeiten, dies zu tun, je nachdem, welche Anwendungs-Konfigurationsdatei Sie verwenden
a) Wenn Sie die application.properties Datei verwenden
server.port = 8090
b) Wenn Sie die application.yml Datei verwenden, setzen Sie die Server-Port-Eigenschaft im YAML-Format wie unten angegeben
server:
port: 8090
c) Sie können die Eigenschaft auch als Systemeigenschaft in der Hauptmethode setzen
System.setProperty("server.port","8090");