se você usar o arquivo "yml" para a configuração, então você pode usar este servidor: porta: 8081 também anotar que você classe principal como "@SpringBootApplication" e remove @ EnableAutoConfiguration
Keaz
seu projeto [application.properties] para adicionar o server.port = 8080
Lahiru Samishka 8/19
definido server.port=8080nas propriedades do aplicativo. essa configuração está na ServerProperties.classclasse abaixo org.springframework.boot.autoconfigure.web.
Atif 11/03
Respostas:
1227
Como disse em docs quer definidos server.portcomo propriedade do sistema usando a opção de linha de comando para JVM -Dserver.port=8090ou adicionar application.propertiesem /src/main/resources/com
Como complemento a esta resposta: De acordo com os documentos da primavera, existem outros caminhos que você pode seguir application.properties. No meu caso, isso ajudou muito.
Sargas
14
-Dserver.port = XXXX não funcionou para mim. Eu modo variável de ambiente OS usados: $ SERVER_PORT=8090 java -jar <path/to/my/jar>
Soumya Kanti
10
Ambos (1) java -Dserver.port=XXXX -jar <path/to/my/jar>e (2) java -jar <path/to/my/jar> --server.port=YYYYfuncionam. O primeiro comando define a server.portpropriedade do sistema e o segundo comando passa a propriedade pelos argumentos da linha de comando ( String... argsno mainmétodo). Além disso, se você executar java -Dserver.port=XXXX -jar <path/to/my/jar> --server.port=YYYY, YYYYtem precedência sobre XXXX, é por isso que a Configuração Externizada de Inicialização da Spring é tão encantadora.
tan9
210
Existem duas maneiras principais de alterar a porta no Tomcat incorporado em um aplicativo de inicialização do Spring.
Modifique application.properties
Primeiro, você pode tentar o arquivo application.properties na pasta / resources:
server.port =8090
Modificar uma opção de VM
A segunda maneira, se você quiser evitar modificar qualquer arquivo e fazer o check-in de algo que você só precisa no seu local, use um vm arg:
Vá para Executar -> Editar configurações -> Opções da VM
Em STS 4 é pelo prazo -> configurações de execução -> principal, em seguida, desloque-se para Tabela com Nome do parâmetro e Valor
serv-inc
155
Como o Spring Boot fornece vários mecanismos de externalização de configuração (por meio de várias PropertySourceimplementações e / ou processadores conectados ao Environmentobjeto em ordem), você pode definir qualquer propriedade fora do seu arquivo jar através dos seguintes métodos:
Passe a propriedade pelo argumento da linha de comandos como argumento do aplicativo
java -jar <path/to/my/jar>--server.port=7788
Da propriedade em SPRING_APPLICATION_JSON(Spring Boot 1.3.0+)
Isso é muito útil, fornecendo propriedades padrão no PropertySources com menor precedência (e geralmente empacotadas no arquivo morto ou codificadas na fonte) e substituindo-as no ambiente de tempo de execução. E é a filosofia de design do Spring Boot:
Seja opinativo imediatamente, mas saia do caminho rapidamente, pois os requisitos começam a divergir dos padrões.
SERVER_NAMEa server.nameconversão foi feita pelo Relaxed Binding .
Isso está funcionando e é muito útil quando você tem uma porta no seu próprio arquivo de configuração e deseja configurá-lo durante o tempo de execução.
Xdg
4
Isso foi útil quando eu precisei implantar um aplicativo em um serviço AWS Elastic Beanstalk, para obter a porta de uma variável de ambiente.
Martin Hansen
Isso é super útil quando tudo o que você deseja é uma unidade independente ou um teste de integração, +1.
Priidu Neemre
Muito útil quando a variável env para port já está definida com um nome diferente.
Higuaro
2
Não é o @Configurationlugar de @Controller? Por favor, atualize se sim.
Você define a porta na linha de comandos (por exemplo, 8888)
-Dserver.port=8888 ou --server.port=8888
Exemplo: java -jar -Dserver.port=8888 test.jar
Ou você define a porta no application.properties
server.port=${port:4588}
ou (em application.yml com sintaxe yaml)
server:
port: ${port:4588}
Se a porta passada por -Dport (ou -Dserver.port) for configurada na linha de comando, essa porta será levada em consideração. Caso contrário, a porta será 4588 por padrão.
Se você deseja impor a porta no arquivo de propriedades, independentemente da variável de ambiente, basta escrever:
System.setProperty("server.port", 80);é outra maneira de conseguir o mesmo.
hd1
@ hd1, adicionei nossas respostas à resposta principal, verifique-a e modifique-a como desejar, por favor #
Luis Mauricio
18
Você pode especificar a porta substituindo o EmbeddedServletContainerFactorybean em sua configuração (baseado em java ou xml). Lá, você pode especificar a porta para o contêiner de servlet incorporado usado. Por favor, consulte o parágrafo Spring Boot - Core "Embedded Servlet Container Support" e exemplo lá. Espero que isto ajude.
Quando o aplicativo de inicialização por mola é iniciado, o servidor incorporado, como o Tomcat, inicia com uma porta padrão. O tomcat incorporado inicia com a porta 8080 como padrão. Existem várias maneiras de alterar a porta do servidor padrão.
Usando o arquivo de propriedades (.properties / .yml)
Para alterar a porta do servidor usando o arquivo de propriedades, precisamos configurar a propriedade server.port .
uma. Usando application.properties no caminho de classe, como
src \ main \ resources \ application.properties
server.port =8585
O servidor começará com a porta 8585. Para obter uma porta aleatória do servidor, atribua 0 à propriedade.
server.port =0
Agora, a inicialização por primavera iniciará o servidor em uma porta que não está sendo usada atualmente por nenhum servidor no sistema.
b. Usando application.yml no caminho de classe, como
src \ main \ resources \ application.yml.
server:
port:8585
O servidor iniciará com a porta 8585.
Para porta aleatória, atribua 0.
server:
port:0
Usando o comando java com --server.port ou -Dserver.port
Suponha que tenhamos um JAR executável chamado my-app.jar e, ao iniciar o aplicativo de inicialização da primavera usando o comando java, podemos usar o argumento da seguinte maneira.
Usando --server.port
java -jar my-app.jar --server.port=8585
Usando -Dserver.port
java -jar -Dserver.port=8585 my-app.jar
O servidor iniciará com a porta 8585.
Usando o comando java com --port ou -Dport em resumo
Para resumir --server.port e -Dserver.port, podemos remover a palavra-chave do servidor e torná-la qualquer palavra-chave curta, como --port e -Dport. Podemos usar qualquer palavra-chave curta. Aqui estamos usando port como palavra-chave curta. Para alcançá-lo, precisamos configurar o espaço reservado no arquivo de propriedades da seguinte maneira.
Usando application.properties
server.port=${port:8282}
Usando application.yml
server:
port: ${port:8282}
Se não passarmos a porta como argumento, por padrão, o servidor começará com 8282. Se queremos uma porta diferente, precisamos passar a porta desejada no argumento da seguinte maneira. Suponha que tenhamos um JAR executável chamado my-app.jar.
Usando --port
java -jar my-app.jar --port=8585
Usando -Dport
java -jar -Dport=8585 my-app.jar
O servidor iniciará com a porta 8585.
Usando SERVER_PORT com SpringApplication programaticamente
SpringApplication tem um método como setDefaultProperties () usado para alterar as propriedades padrão da inicialização por mola. Suponha que desejemos alterar a porta padrão e precisamos criar um mapa e colocar uma porta com a chave SERVER_PORT. Encontre o exemplo.
Existem muitos outros itens que você pode alterar na configuração do servidor, alterando application.properties. Como tempo limite da sessão, endereço e porta etc. Consulte a postagem abaixo
Como todos disseram, você pode especificar em application.properties server.port = 9000 (pode ser qualquer outro valor)
Se você estiver usando o atuador de mola em seu projeto, por padrão, ele apontará para
8080 e, se desejar alterá-lo, em application.properties mencione management.port = 9001 (pode ser qualquer outro valor)
Por padrão, o aplicativo de inicialização do spring inicia com o servidor do tomcat incorporado, na porta padrão 8080. O spring fornece as seguintes personalizações diferentes, você pode escolher um deles.
NOTA - você pode usar server.port = 0 inicialização por primavera encontrará qualquer porta aleatória http não atribuída para nós.
1) application.properties
server.port=2020
2) application.yml
server:
port :2020
3) Altere a porta do servidor programaticamente
3.1) Implementando a interface WebServerFactoryCustomizer - Spring 2.x
@ComponentpublicclassMyTomcatWebServerCustomizerimplementsWebServerFactoryCustomizer<TomcatServletWebServerFactory>{@Overridepublicvoid customize(TomcatServletWebServerFactory factory){// customize the factory here
factory.setPort(2020);}}
3.2) Implementando a interface EmbeddedServletContainerCustomizer - Spring 1.x
@ComponentpublicclassCustomizationBeanimplementsEmbeddedServletContainerCustomizer{@Overridepublicvoid customize(ConfigurableEmbeddedServletContainer container){// customize here
container.setPort(2020);}}
De fato, a maneira mais fácil é definir a propriedade server.port .
Se você estiver usando o STS como IDE, a partir da versão 3.6.7, você realmente terá o Spring Properties Editor para abrir o arquivo de propriedades.
Este editor fornece preenchimento automático para todas as propriedades do Spring Boot. Se você escrever a porta e pressionar CTRL + ESPAÇO, server.port será a primeira opção.
Ou também, se você estiver usando o Intellij IDEA, o preenchimento automático também funcionará. ;)
Sorte
9
Usar a propriedade server.port = 8080, por exemplo, como mencionado em outras respostas, é definitivamente um caminho a percorrer. Só queria mencionar que você também pode expor uma propriedade de ambiente:
SERVER_PORT=8080
Desde que a bota de mola é capaz de substituir "." para "_" e maiúsculas e minúsculas para variáveis de ambiente em versões recentes. Isso é especialmente útil em contêineres onde tudo o que você precisa fazer é definir essa variável de ambiente sem adicionar / editar application.propertiesou passar as propriedades do sistema pela linha de comando (por exemplo -Dserver.port=$PORT)
Você também pode usar SERVER_PORTa variável de ambiente para configurar a porta Spring Boot. Basta definir a variável de ambiente e reiniciar o aplicativo:
set SERVER_PORT=9999// on windows machine
export SERVER_PORT=9999// on linux
Observe que, se você não definir essas variáveis de ambiente em todo o sistema, execute o aplicativo de inicialização na mesma sessão.
server.port=8080
nas propriedades do aplicativo. essa configuração está naServerProperties.class
classe abaixoorg.springframework.boot.autoconfigure.web
.Respostas:
Como disse em docs quer definidos
server.port
como propriedade do sistema usando a opção de linha de comando para JVM-Dserver.port=8090
ou adicionarapplication.properties
em/src/main/resources/
comPara uso de porta aleatória
fonte
@Value("${local.server.port}")
application.properties
. No meu caso, isso ajudou muito.$ SERVER_PORT=8090 java -jar <path/to/my/jar>
java -Dserver.port=XXXX -jar <path/to/my/jar>
e (2)java -jar <path/to/my/jar> --server.port=YYYY
funcionam. O primeiro comando define aserver.port
propriedade do sistema e o segundo comando passa a propriedade pelos argumentos da linha de comando (String... args
nomain
método). Além disso, se você executarjava -Dserver.port=XXXX -jar <path/to/my/jar> --server.port=YYYY
,YYYY
tem precedência sobreXXXX
, é por isso que a Configuração Externizada de Inicialização da Spring é tão encantadora.Existem duas maneiras principais de alterar a porta no Tomcat incorporado em um aplicativo de inicialização do Spring.
Modifique application.properties
Primeiro, você pode tentar o arquivo application.properties na pasta / resources:
Modificar uma opção de VM
A segunda maneira, se você quiser evitar modificar qualquer arquivo e fazer o check-in de algo que você só precisa no seu local, use um vm arg:
Vá para Executar -> Editar configurações -> Opções da VM
Além disso, se você precisar de mais informações, poderá visualizar a seguinte publicação no blog aqui: Alterando a porta em um aplicativo de inicialização Spring
fonte
Como o Spring Boot fornece vários mecanismos de externalização de configuração (por meio de várias
PropertySource
implementações e / ou processadores conectados aoEnvironment
objeto em ordem), você pode definir qualquer propriedade fora do seu arquivo jar através dos seguintes métodos:Passe a propriedade pelo argumento da linha de comandos como argumento do aplicativo
Da propriedade em
SPRING_APPLICATION_JSON
(Spring Boot 1.3.0+)Defina a variável de ambiente no shell U * IX:
Usando a propriedade do sistema Java:
Passe pelo argumento da linha de comando:
Definir propriedade do sistema JVM
Definir variável de ambiente do SO
U * IX Shell
janelas
Coloque a propriedade no
./config/application.properties
arquivo de configuraçãoe corra:
Coloque a propriedade em
./config/application.yaml
e corra:
Coloque a propriedade em
./application.properties
e corra:
Coloque a propriedade em
./application.yaml
e corra:
Você pode combinar os métodos acima todos juntos, e a configuração anterior na lista tem precedência sobre o último.
Por exemplo:
O servidor iniciará e escutará na porta 7788.
Isso é muito útil, fornecendo propriedades padrão no PropertySources com menor precedência (e geralmente empacotadas no arquivo morto ou codificadas na fonte) e substituindo-as no ambiente de tempo de execução. E é a filosofia de design do Spring Boot:
SERVER_NAME
aserver.name
conversão foi feita pelo Relaxed Binding .fonte
Além disso, você pode configurar a porta programaticamente
fonte
@Configuration
lugar de@Controller
? Por favor, atualize se sim.Você pode definir a porta no código java:
Ou em application.yml:
Ou em application.properties:
Ou como um parâmetro de linha de comando:
fonte
Se você deseja executá-lo localmente, use este -
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
A partir do Spring Boot 2.0 , eis o comando que funciona (as dicas estavam aqui ):
fonte
spring-boot.run.jvmArguments
.Caso esteja usando,
application.yml
adicione as seguintes linhas a elee, claro, 0 para porta aleatória.
fonte
Conforme explicado na documentação do Spring , existem várias maneiras de fazer isso:
Você define a porta na linha de comandos (por exemplo, 8888)
-Dserver.port=8888
ou--server.port=8888
Exemplo:
java -jar -Dserver.port=8888 test.jar
Ou você define a porta no application.properties
ou (em application.yml com sintaxe yaml)
Se a porta passada por -Dport (ou -Dserver.port) for configurada na linha de comando, essa porta será levada em consideração. Caso contrário, a porta será 4588 por padrão.
Se você deseja impor a porta no arquivo de propriedades, independentemente da variável de ambiente, basta escrever:
fonte
Incluir propriedade abaixo em
application.properties
fonte
Quando você precisar de uma maneira programática de fazê-lo, poderá configurá-lo durante a inicialização:
Isso pode ajudar em coisas como porta dependente do ambiente. Tenha um bom dia
fonte
System.setProperty("server.port", 80);
é outra maneira de conseguir o mesmo.Você pode especificar a porta substituindo o
EmbeddedServletContainerFactory
bean em sua configuração (baseado em java ou xml). Lá, você pode especificar a porta para o contêiner de servlet incorporado usado. Por favor, consulte o parágrafo Spring Boot - Core "Embedded Servlet Container Support" e exemplo lá. Espero que isto ajude.fonte
No
application.properties
arquivo presente nos recursos:fonte
Para estender outras respostas:
Há uma seção nos documentos para testes que explica como configurar a porta nos testes de integração:
Nos testes de integração, a configuração da porta é feita usando a anotação
@SpringBootTest
e oswebEnvironment
valores.Porta aleatória:
Você pode injetar o valor usando
@LocalServerPort
qual é o mesmo que@Value("${local.server.port}")
.Configuração de teste de porta aleatória:
Porta definida:
Leva o valor de
server.port
se for definido.@TestPropertySource(properties = "server.port=9192")
, substitui outros valores definidos.src/test/resources/application.properties
(se existir).8080
.Exemplo:
Configuração de teste de porta definida:
fonte
Quando o aplicativo de inicialização por mola é iniciado, o servidor incorporado, como o Tomcat, inicia com uma porta padrão. O tomcat incorporado inicia com a porta 8080 como padrão. Existem várias maneiras de alterar a porta do servidor padrão.
Usando o arquivo de propriedades (.properties / .yml)
Para alterar a porta do servidor usando o arquivo de propriedades, precisamos configurar a propriedade server.port .
O servidor começará com a porta 8585. Para obter uma porta aleatória do servidor, atribua 0 à propriedade.
Agora, a inicialização por primavera iniciará o servidor em uma porta que não está sendo usada atualmente por nenhum servidor no sistema.
O servidor iniciará com a porta 8585.
Para porta aleatória, atribua 0.
Usando o comando java com --server.port ou -Dserver.port
Suponha que tenhamos um JAR executável chamado my-app.jar e, ao iniciar o aplicativo de inicialização da primavera usando o comando java, podemos usar o argumento da seguinte maneira.
O servidor iniciará com a porta 8585.
Usando o comando java com --port ou -Dport em resumo
Para resumir --server.port e -Dserver.port, podemos remover a palavra-chave do servidor e torná-la qualquer palavra-chave curta, como --port e -Dport. Podemos usar qualquer palavra-chave curta. Aqui estamos usando port como palavra-chave curta. Para alcançá-lo, precisamos configurar o espaço reservado no arquivo de propriedades da seguinte maneira.
Se não passarmos a porta como argumento, por padrão, o servidor começará com 8282. Se queremos uma porta diferente, precisamos passar a porta desejada no argumento da seguinte maneira. Suponha que tenhamos um JAR executável chamado my-app.jar.
O servidor iniciará com a porta 8585.
Usando SERVER_PORT com SpringApplication programaticamente
SpringApplication tem um método como setDefaultProperties () usado para alterar as propriedades padrão da inicialização por mola. Suponha que desejemos alterar a porta padrão e precisamos criar um mapa e colocar uma porta com a chave SERVER_PORT. Encontre o exemplo.
MyApplication.java
A inicialização por primavera iniciará o servidor com a porta 8585.
fonte
Existem três maneiras de fazer isso, dependendo do arquivo de configuração do aplicativo que você está usando
a) Se você estiver usando o conjunto de arquivos application.properties
server.port = 8090
b) Se você estiver usando a propriedade da porta do servidor do conjunto de arquivos application.yml no formato YAML, conforme indicado abaixo
c) Você também pode definir a propriedade como propriedade do sistema no método principal
fonte
se você estiver usando gradle como a ferramenta de construção, poderá definir a porta do servidor no arquivo application.yml como:
Se você estiver usando o maven, a porta poderá ser configurada no arquivo application.properties como:
fonte
server.port = 8291
Existem muitos outros itens que você pode alterar na configuração do servidor, alterando application.properties. Como tempo limite da sessão, endereço e porta etc. Consulte a postagem abaixo
ref: http://docs.spring.io/spring-boot/docs/1.4.x/reference/html/common-application-properties.html
Eu usei alguns deles como abaixo.
fonte
Como todos disseram, você pode especificar em application.properties
server.port = 9000 (pode ser qualquer outro valor)
Se você estiver usando o atuador de mola em seu projeto, por padrão, ele apontará para
8080 e, se desejar alterá-lo, em application.properties mencione
management.port = 9001 (pode ser qualquer outro valor)
fonte
Adicione isso ao seu
application.properties
arquivofonte
server.port 8080
é sintaxe errada para Java arquivo de propriedade ...No
application.properties
arquivo, adicione esta linha:server.port = 65535
onde colocar esse campo:
No meu caso, eu o coloquei no diretório em que o
jar
arquivo está.De:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-application-property-files
fonte
Por padrão, o aplicativo de inicialização do spring inicia com o servidor do tomcat incorporado, na porta padrão 8080. O spring fornece as seguintes personalizações diferentes, você pode escolher um deles.
1) application.properties
2) application.yml
3) Altere a porta do servidor programaticamente
3.1) Implementando a interface WebServerFactoryCustomizer - Spring 2.x
3.2) Implementando a interface EmbeddedServletContainerCustomizer - Spring 1.x
4) Usando a opção de linha de comando
fonte
De fato, a maneira mais fácil é definir a propriedade server.port .
Se você estiver usando o STS como IDE, a partir da versão 3.6.7, você realmente terá o Spring Properties Editor para abrir o arquivo de propriedades.
Este editor fornece preenchimento automático para todas as propriedades do Spring Boot. Se você escrever a porta e pressionar CTRL + ESPAÇO, server.port será a primeira opção.
fonte
Usar a propriedade server.port = 8080, por exemplo, como mencionado em outras respostas, é definitivamente um caminho a percorrer. Só queria mencionar que você também pode expor uma propriedade de ambiente:
Desde que a bota de mola é capaz de substituir "." para "_" e maiúsculas e minúsculas para variáveis de ambiente em versões recentes. Isso é especialmente útil em contêineres onde tudo o que você precisa fazer é definir essa variável de ambiente sem adicionar / editar
application.properties
ou passar as propriedades do sistema pela linha de comando (por exemplo-Dserver.port=$PORT
)fonte
SERVER_PORT=8081 mvn spring-boot:run
Espero que este ajude
fonte
Fornecer o número da porta no arquivo application.properties resolverá o problema
"porta depende da sua escolha, onde você deseja hospedar o aplicativo"
fonte
Você pode adicionar a porta nos métodos abaixo.
Seção Executar -> Configurações
Em
application.xml
adiçãoserver.port=XXXX
fonte
application.yml
e qual IDE você está usando? Por favor, seja específico.Você pode configurá-lo em application.properties em / src / main / resources /
fonte
Basta ter um
application.properties
insrc/main/resources
do projeto e dar láonde
****
se refere ao número da porta.fonte
1.1 Atualize através de um arquivo de propriedades.
/src/main/resources/application.properties
server.port = 8888
Atualize através de um arquivo yaml.
EmbeddedServletContainerCustomizer
fonte
Você também pode usar
SERVER_PORT
a variável de ambiente para configurar a porta Spring Boot. Basta definir a variável de ambiente e reiniciar o aplicativo:Observe que, se você não definir essas variáveis de ambiente em todo o sistema, execute o aplicativo de inicialização na mesma sessão.
fonte