Comment configurer le port D'une application de démarrage à ressort
comment configurer le port TCP/IP écouté par une application de démarrage à ressort, pour qu'il n'utilise pas le port par défaut de 8080.
30 réponses
Comme , a déclaré dans les docs définir server.port
en tant que système de la propriété à l'aide de ligne de commande option pour jvm --server.port=8090
ou d'ajouter application.properties
dans /src/main/resources/
avec
server.port = 8090
Pour le port aléatoire utiliser
server.port=0
il y a deux façons principales de changer le port dans le Tomcat intégré dans une application de démarrage à ressort.
modifier la demande.propriétés
vous pouvez d'abord essayer l'application.fichier de propriétés dans le dossier /resources:
modifier une option VM
la seconde façon, si vous voulez éviter de modifier tous les fichiers et la vérification de quelque chose dont vous n'avez besoin que sur votre local, vous pouvez utiliser un VM arg:
Aller à Exécuter -> Modifier les Configurations -> VM options
-Dserver.port=8090
en outre, si vous avez besoin de plus d'informations, vous pouvez consulter le blog suivant ici: changer le port sur une application de démarrage à ressort
vous pouvez aussi configurer le port de manière programmée
@Configuration
public class ServletConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
container.setPort(8012);
});
}
}
puisque la botte de printemps fournit divers mécanisme d'externalisation de configuration (par diverses PropertySource
implémentations et/ou processeurs câblés dans Environment
objet dans l'ordre), vous pouvez définir n'importe quelle propriété en dehors de de votre archive jar par les méthodes suivantes:
-
Passer de la propriété à travers argument de ligne de commande comme "1519280920 application" argument
java -jar <path/to/my/jar> --server.port=7788
-
propriété
SPRING_APPLICATION_JSON
(le Printemps de Démarrage 1.3.0+)-
Définir la variable d'environnement dans U*IX shell:
SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar <path/to/my/jar>
-
En utilisant la propriété système Java:
java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar>
-
Passer à travers argument de ligne de commande:
java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
-
-
Définir système JVM des biens
java -Dserver.port=7788 -jar <path/to/my/jar>
-
Définir OS de la variable d'environnement
-
U*IX Shell
SERVER_PORT=7788 java -jar <path/to/my/jar>
-
Windows
SET SERVER_PORT=7788 java -jar <path/to/my/jar>
-
-
Place de la propriété dans
./config/application.properties
fichier de configurationserver.port=7788
et courir:
java -jar <path/to/my/jar>
-
Place de la propriété dans
./config/application.yaml
server: port: 7788
et courir:
java -jar <path/to/my/jar>
-
Place de la propriété dans
./application.properties
server.port=7788
et courir:
java -jar <path/to/my/jar>
-
Placer la propriété dans
./application.yaml
server: port: 7788
et courir:
java -jar <path/to/my/jar>
vous pouvez combiner toutes les méthodes ci-dessus ensemble, et la première configuration dans la liste a priorité sur la dernière.
par exemple:
SERVER_PORT=2266 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
le serveur démarre et écoute sur le port 7788.
C'est très utile fournir des propriétés par défaut dans PropertySources avec une priorité plus faible (et généralement empaqueté dans l'archive ou codé dans la source), et puis le surcharger dans l'environnement runtime. Et c'est la philosophie de conception de la botte de printemps:
être opinionated hors de la boîte, mais sortir de la voie rapidement que les exigences commencent à diverger des valeurs par défaut.
SERVER_NAME
à server.name
la conversion a été effectuée par relax Binding .
vous pouvez définir le port en code java:
HashMap<String, Object> props = new HashMap<>();
props.put("server.port", 9999);
new SpringApplicationBuilder()
.sources(SampleController.class)
.properties(props)
.run(args);
ou en application.yml:
server:
port: 9999
ou en application.propriétés:
server.port=9999
ou comme paramètre de ligne de commande:
-Dserver.port=9999
dans le cas où vous utilisez application.yml
, ajouter les lignes suivantes:"
server:
port: 9000
et bien sûr 0 pour port aléatoire.
comme expliqué dans documentation de ressort , il y a plusieurs façons de le faire:
soit vous mettez le port dans la ligne de commande (par exemple 8888)
-Dserver.port=8888
ou --server.port=8888
exemple: java -jar -Dserver.port=8888 test.jar
ou vous définissez le port dans l'application.propriétés
server.port=${port:4588}
ou (en application.YML avec la syntaxe yaml)
server:
port: ${port:4588}
si le port est passé par-Dport (or-Dserver.port) est défini en ligne de commande alors ce port sera pris en compte. Si non, alors le port sera 4588 par défaut.
si vous voulez appliquer le port dans le fichier de propriétés quelle que soit la variable d'environnement, vous n'avez qu'à écrire:
server.port=8888
Inclure ci-dessous propriété application.properties
server.port=8080
quand vous avez besoin d'une façon programmatique de le faire, vous pouvez le définir au démarrage:
System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);
cela pourrait aider pour des choses comme le port dépendant de l'environnement. Have a nice day
vous pouvez spécifier le port en écrasant EmbeddedServletContainerFactory
dans votre configuration (basé sur java ou xml). Là, vous pouvez spécifier le port pour le conteneur de servlet intégré utilisé. S'il vous plaît, voir Boot - Core de ressort "support du conteneur Servlet intégré" paragraphe et exemple là. Espérons que cette aide.
d'étendre D'autres réponses:
il y a une section dans le docs for testing qui explique comment configurer le port sur les tests d'intégration:
lors des tests d'intégration, la configuration du port est effectuée en utilisant l'annotation @SpringBootTest
et les valeurs webEnvironment
.
port Aléatoire:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
vous pouvez injecter la valeur en utilisant @LocalServerPort
qui est la même que @Value("${local.server.port}")
.
- exemple:
port Aléatoire configuration de test:
@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
...
@LocalServerPort //to inject port value
int port;
}
port défini:
@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
il prend la valeur de server.port
si est défini.
- si défini par
@TestPropertySource(properties = "server.port=9192")
, il l'emporte sur les autres valeurs définies. - Si non, il prend la valeur de
src/test/resources/application.properties
(s'il existe). - et enfin, si elle n'est pas définie, elle commence par la valeur par défaut
8080
.
exemple:
définition de l'essai d'ouverture configuration:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
Dans application.properties
fichier présent dans les ressources:
server.port=8082
lorsque l'application spring boot démarre, le serveur embarqué tel que Tomcat démarre avec un port par défaut. Le tomcat embarqué démarre avec le port 8080 par défaut. Il y a plusieurs façons de changer le port de serveur par défaut.
En Utilisant La Propriété De Fichier (.propriété./yml)
pour changer le port du serveur en utilisant le fichier de propriété, nous devons configurer serveur.port "1519170920 de la propriété".
A. Utilisation de l'application.propriétés dans le classpath comme src\main\ressources\application.propriétés
server.port = 8585
le serveur démarre avec le port 8585. Pour obtenir le port de serveur aléatoire, assignez 0 à la propriété.
server.port = 0
maintenant, spring boot va démarrer le serveur sur un port qui n'est actuellement utilisé par aucun serveur dans le système.
B. Utilisation de l'application.yml dans classpath tel que: src\main\ressources\application.yml.
server:
port: 8585
Le serveur démarre avec le port 8585.
pour port aléatoire, assignez 0.
server:
port: 0
utilisant la commande java avec --server.port ou -Dserver.port
supposons que nous ayons un JAR exécutable nommé my-app.jar, puis en démarrant l'application de démarrage de printemps en utilisant la commande java, nous pouvons utiliser l'argument comme suit.
utilisant --server.port
java -jar my-app.jar --server.port=8585
Utilisant-Dserver.port
java -jar -Dserver.port=8585 my-app.jar
Le serveur démarre avec le port 8585.
utilisant la commande java avec -- port ou-Dport en abrégé
pour faire --server.port et-Dserver.port en bref, nous pouvons supprimer le mot-clé server et en faire n'importe quel mot-clé court tel que --port et-Dport. On peut utiliser à court de mots clés. Ici, nous utilisons le port comme mot clé court. Pour y parvenir, nous devons configurer placeholder dans le fichier de propriétés comme suit.
en utilisant application.propriétés
server.port=${port:8282}
en utilisant application.yml
server:
port: ${port:8282}
si nous ne passons pas le port comme argument, alors par défaut le serveur commencera avec 8282. Si nous voulons un port différent, alors nous devons passer le port désiré dans l'argument comme suit. Supposons que nous ayons un JAR exécutable nommé my-app.pot.
utilisant --port
java -jar my-app.jar --port=8585
En Utilisant-Dport
java -jar -Dport=8585 my-app.jar
Le serveur démarre avec le port 8585.
utilisant SERVER_PORT avec SpringApplication Programmatically
SpringApplication a une méthode comme setDefaultProperties() qui est utilisée pour changer les propriétés par défaut de démarrage à ressort. Supposons que nous voulons changer le port par défaut, alors nous devons créer une carte et mettre un port avec la clé SERVER_PORT. Trouver l' exemple.
MyApplication.java
package com.humoyun;
import java.util.HashMap;
import java.util.Map;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(MyApplication.class);
Map<String, Object> map = new HashMap<>();
map.put("SERVER_PORT", "8585");
application.setDefaultProperties(map);
application.run(args);
}
}
démarrage à ressort démarrera le serveur avec le port 8585.
il y a beaucoup d'autres choses que vous pouvez modifier dans la configuration du serveur en changeant l'application.propriété. Comme le temps de session, l'adresse et le port etc. Voir ci-dessous
réf: http://docs.spring.io/spring-boot/docs/1.4.x/reference/html/common-application-properties.html
j'ai utilisé peu d'entre eux comme ci-dessous.
server.session.timeout=1
server.port = 3029
server.address= deepesh
-
comme tout le monde l'a dit, Vous pouvez spécifier dans l'application.propriétés
serveur.port = 9000 (pourrait être n'importe quelle autre valeur) -
si vous utilisez l'actionneur de ressort dans votre projet, par défaut il pointe à
8080, et si vous voulez le modifier, puis dans l'application.mention
gestion.port = 9001 (pourrait être toute autre valeur)
en effet, la façon la plus simple est de configurer le serveur .port propriété.
si vous utilisez STS comme IDE, de la version 3.6.7 vous avez en fait éditeur de propriétés de ressort pour ouvrir le fichier de propriétés.
cet éditeur fournit autocomplete pour toutes les propriétés de démarrage de ressort. Si vous écrivez port et appuyez sur Ctrl + SPACE, serveur.port sera le premier option.
Ajouter ceci dans votre application.properties
fichier
server.port= 8080
1.1 Mise à jour via un fichier de propriétés.
/src/main/resources/de l'application.propriétés
server.port = 8888
mise à jour via un fichier yaml.
server:
port: 8888
EmbeddedServletContainerCustomizer
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8888);
}
}
Espérons que cette aide
application.properties=> server.port=8090 application.yml=> server port:8090
Juste un application.properties
dans src/main/resources
du projet et de donner il
server.port=****
où ****
fait référence au numéro de port.
utilisant le serveur de propriétés.port=8080 par exemple comme mentionné dans d'autres réponses est certainement un chemin à parcourir. Je voulais juste mentionner que vous pourriez également exposer une propriété de l'environnement:
SERVER_PORT=8080
puisque la botte à ressort peut remplacer "."pour les "_" et à réduire les majuscules pour les variables d'environnement dans les versions récentes.
Ceci est particulièrement utile dans les conteneurs où tout ce que vous avez à faire est de définir cette variable d'environnement sans ajouter /éditer application.properties
ou passer les propriétés du système en ligne de commande (I. e -Dserver.port=$PORT
)
vous pouvez ajouter le port dans les méthodes ci-dessous.
-
Exécuter -> Configurations de la section
-
dans
application.xml
ajouterserver.port=XXXX
vous pouvez définir cela dans l'application.Propriétés sous / src/main/ resources /
server.port = 8090
fonctionne principalement sur port:8080
à cause de Tomcat intégré. Dans certains, il peut jeter une erreur port 8080 already in use
. Pour éviter ce genre de problèmes, nous pouvons config le port du serveur.
en utilisant application.propriétés
ajouter server.port=9898
de l'exécution de config
lancez votre application avec les arguments ci-dessous.
spring-boot:run -Drun.jvmArguments='-Dserver.port=8081'
il y a trois façons de le faire
1 Serveur de jeu.port propriété dans application.properties
fichier
server.port = 8090
2 Propriétés du port de Set server dans application.yml
file
server:
port: 8090
3 Définir la propriété comme propriété de système dans main
méthode
System.setProperty("server.port","8090");
vous pouvez également utiliser la variable d'environnement SERVER_PORT
pour configurer le port de démarrage. Il suffit de définir la variable d'environnement et de redémarrer l'application:
set SERVER_PORT=9999 // on windows machine
export SERVER_PORT=9999 // on linux
veuillez noter que si vous ne définissez pas ces variables d'environnement à l'échelle du système, vous devriez lancer l'application de démarrage sur la même session.
Le port par défaut est : 8080 mais nous pouvons personnaliser le numéro de port dans l'application.propriété comme indiqué ci-dessous
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
server.port = 5050 -- #here we can give any port number.
cette question Est le premier résultat si vous utilisez google pour Port à ressort Grad .
si vous utilisez gradle vous pouvez faire quelque chose comme cela si vous avez le Plugin de démarrage à ressort déjà appliqué:
bootRun {
args += ["--server.port=[PORT]"]
}
pour une réponse plus sophistiquée voir ma réponse ici .
si vous travaillez sur des projets d'amorçage et que vous voulez configurer le port, vous pouvez entrer les données dans l'application.fichier de propriétés comme NOTE:le fichier de propriétés doit être sous src/main/resource
propriétés des ressorts
server.port=9999 Si vous utilisez le CMD alors suivez cette commande - Dserver.port=9999 Pour le port par défaut son serveur.port=0 Assurez-vous qu'aucun port est à l'aide de ce numéro de port