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.

530
demandé sur Raedwald 2014-01-13 06:59:47

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
858
répondu Paul Verest 2018-01-11 22:12:24

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:

application.properties file

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

Change port with a vm arg

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

116
répondu anataliocs 2015-05-14 23:57:13

vous pouvez aussi configurer le port de manière programmée

@Configuration
public class ServletConfig {
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return (container -> {
            container.setPort(8012);
        });
    }
}
82
répondu makerj 2017-08-04 15:50:36

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:

  1. Passer de la propriété à travers argument de ligne de commande comme "1519280920 application" argument

    java -jar <path/to/my/jar> --server.port=7788
    
  2. 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}'
      
  3. Définir système JVM des biens

    java -Dserver.port=7788 -jar <path/to/my/jar>
    
  4. 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>
      
  5. Place de la propriété dans ./config/application.properties fichier de configuration

    server.port=7788
    

    et courir:

     java -jar <path/to/my/jar>
    
  6. Place de la propriété dans ./config/application.yaml

    server:
        port: 7788
    

    et courir:

     java -jar <path/to/my/jar>
    
  7. Place de la propriété dans ./application.properties

    server.port=7788
    

    et courir:

     java -jar <path/to/my/jar>
    
  8. 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 .

78
répondu tan9 2017-12-04 15:53:49

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
67
répondu ayurchuk 2016-03-17 16:58:47

dans le cas où vous utilisez application.yml , ajouter les lignes suivantes:"

server:
     port: 9000

et bien sûr 0 pour port aléatoire.

39
répondu gatolgaj 2014-12-04 02:13:34

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
38
répondu OlivierTerrien 2017-11-11 22:56:09

Si vous souhaitez l'exécuter localement, utilisez ce -

mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'

Que de Spring Boot 2.0 , voici la commande qui fonctionne (indices ont été ici ):

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
30
répondu slad 2018-09-26 16:28:29

Inclure ci-dessous propriété application.properties

server.port=8080
25
répondu Chandramouli 2018-08-08 11:23:36

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

15
répondu Luis Mauricio 2016-04-03 16:21:16

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.

14
répondu nndru 2014-06-15 08:39:28

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() {
    }

}
14
répondu Pau 2017-08-06 13:04:19

Dans application.properties fichier présent dans les ressources:

server.port=8082
13
répondu Amit Gujarathi 2017-04-24 08:15:19

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.

12
répondu Humoyun 2017-10-06 14:35:11

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
10
répondu deepesh kumar 2018-01-26 04:39:17
  1. 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)

  2. 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)

9
répondu Rakesh 2015-09-29 06:01:19

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.

7
répondu Adrian Cosma 2015-12-15 09:11:46

Ajouter ceci dans votre application.properties fichier

server.port= 8080
7
répondu Sridhar Battala 2018-08-08 11:23:15

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);

    }

}
6
répondu Buddhika Lakshan 2017-08-28 10:21:48

Espérons que cette aide

application.properties=> 

server.port=8090

application.yml=> 

server
  port:8090
6
répondu Sagar Mal Shankhala 2018-05-18 13:14:25

Juste un application.properties dans src/main/resources du projet et de donner il

server.port=****

**** fait référence au numéro de port.

5
répondu Shubham Khurana 2017-07-02 13:57:29

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 )

5
répondu Ulises 2018-08-08 11:22:59

vous pouvez ajouter le port dans les méthodes ci-dessous.

  1. Exécuter -> Configurations de la section

  2. dans application.xml ajouter server.port=XXXX

4
répondu opensourcegeek 2016-02-02 16:25:36

vous pouvez définir cela dans l'application.Propriétés sous / src/main/ resources /

server.port = 8090
4
répondu Abhijeet 2016-05-13 22:54:24

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'

3
répondu Mohanraj 2017-08-16 04:10:34

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");
3
répondu Amandeep Singh 2018-08-08 11:22:08

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.

2
répondu Ali Dehghani 2016-04-26 13:03:52

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.
2
répondu Lova Chittumuri 2017-03-01 07:46:44

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 .

2
répondu Moe Pad 2017-11-09 09:34:31

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

2
répondu saravanan 2017-11-10 12:57:42