如何配置Spring Boot应用程序侦听的TCP / IP端口,因此它不使用默认端口8080。
server.port=8080
在应用程序属性中设置。此配置在的ServerProperties.class
类下org.springframework.boot.autoconfigure.web
。
如何配置Spring Boot应用程序侦听的TCP / IP端口,因此它不使用默认端口8080。
server.port=8080
在应用程序属性中设置。此配置在的ServerProperties.class
类下org.springframework.boot.autoconfigure.web
。
Answers:
正如在所述的文档任一组server.port
使用命令行选项来JVM中的系统属性-Dserver.port=8090
或添加application.properties
在/src/main/resources/
与
server.port=8090
对于随机端口使用
server.port=0
@Value("${local.server.port}")
$ SERVER_PORT=8090 java -jar <path/to/my/jar>
java -Dserver.port=XXXX -jar <path/to/my/jar>
和(2)均java -jar <path/to/my/jar> --server.port=YYYY
有效。第一个命令定义server.port
系统属性,第二个命令通过命令行参数(String... args
在main
方法中)传递属性。此外,如果您使用进行运行java -Dserver.port=XXXX -jar <path/to/my/jar> --server.port=YYYY
,YYYY
则优先于XXXX
,这就是Spring Boot外部化配置如此迷人的原因。
在Spring Boot应用程序中,有两种主要方法可以更改嵌入式Tomcat中的端口。
修改application.properties
首先,您可以尝试/ resources文件夹中的application.properties文件:
server.port = 8090
修改虚拟机选项
第二种方法,如果要避免修改任何文件并检入只在本地需要的文件,则可以使用vm arg:
转到运行->编辑配置-> VM选项
-Dserver.port=8090
另外,如果您需要更多信息,则可以在此处查看以下博客文章: 更改Spring Boot应用程序上的端口
由于Spring Boot提供了各种配置外部化机制(通过各种PropertySource
实现和/或Environment
按顺序连接到对象的处理器),因此您可以通过以下方法在jar存档之外设置任何属性:
通过命令行参数传递属性作为应用程序参数
java -jar <path/to/my/jar> --server.port=7788
来自SPRING_APPLICATION_JSON
(Spring Boot 1.3.0+)中的属性
在U * IX shell中定义环境变量:
SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar <path/to/my/jar>
通过使用Java系统属性:
java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar>
通过命令行参数传递:
java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
定义JVM系统属性
java -Dserver.port=7788 -jar <path/to/my/jar>
定义操作系统环境变量
U * IX外壳
SERVER_PORT=7788 java -jar <path/to/my/jar>
视窗
SET SERVER_PORT=7788
java -jar <path/to/my/jar>
将属性放置在./config/application.properties
配置文件中
server.port=7788
并运行:
java -jar <path/to/my/jar>
将财产放在 ./config/application.yaml
server:
port: 7788
并运行:
java -jar <path/to/my/jar>
将财产放在 ./application.properties
server.port=7788
并运行:
java -jar <path/to/my/jar>
将财产放在 ./application.yaml
server:
port: 7788
并运行:
java -jar <path/to/my/jar>
您可以将上述方法全部组合在一起,列表中的前一种配置优先于后一种。
例如:
SERVER_PORT=2266 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
服务器将启动并在端口7788上侦听。
这在提供较低优先级的PropertySources中的默认属性(通常打包在存档中或在源代码中),然后在运行时环境中覆盖它时非常有用。这是Spring Boot的设计理念:
开箱即用,但由于需求开始与默认值有所出入,因此请尽快避开。
SERVER_NAME
以server.name
转化所做轻松绑定。
此外,您可以通过编程方式配置端口
@Configuration
public class ServletConfig {
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return (container -> {
container.setPort(8012);
});
}
}
@Configuration
来代替@Controller
?如果是,请更新。
您可以在Java代码中设置端口:
HashMap<String, Object> props = new HashMap<>();
props.put("server.port", 9999);
new SpringApplicationBuilder()
.sources(SampleController.class)
.properties(props)
.run(args);
或在application.yml中:
server:
port: 9999
或在application.properties中:
server.port=9999
或作为命令行参数:
-Dserver.port=9999
如果您想在本地运行,请使用此-
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
从Spring Boot 2.0开始,这是有效的命令(线索在此处):
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
spring-boot.run.jvmArguments
。
如果您正在使用application.yml
,请在其中添加以下几行
server:
port: 9000
对于随机端口,当然是0。
如Spring文档中所述,有几种方法可以做到这一点:
您可以在命令行中设置端口(例如8888)
-Dserver.port=8888
要么 --server.port=8888
范例: java -jar -Dserver.port=8888 test.jar
或者您在application.properties中设置端口
server.port=${port:4588}
或(在具有yaml语法的application.yml中)
server:
port: ${port:4588}
如果在命令行中设置了-Dport传递的端口(或-Dserver.port),则将考虑该端口。如果不是,则默认端口为4588。
如果要在属性文件中强制使用任何环境变量的端口,则只需编写以下代码:
server.port=8888
如果需要以编程方式进行操作,可以在启动过程中进行设置:
System.getProperties().put( "server.port", 80 );
SpringApplication.run(App.class, args);
这可能对诸如依赖环境的端口之类的事情有所帮助。祝你今天愉快
System.setProperty("server.port", 80);
是达到相同目的的另一种方法。
您可以通过覆盖EmbeddedServletContainerFactory
配置中的bean(基于Java或xml)来指定端口。您可以在此处为使用的嵌入式Servlet容器指定端口。请参阅Spring Boot-Core “嵌入式Servlet容器支持”段落和示例。希望这可以帮助。
在application.properties
资源中存在的文件中:
server.port=8082
扩展其他答案:
文档中有一个用于测试的部分,说明了如何在集成测试中配置端口:
在集成测试中,使用注释@SpringBootTest
和webEnvironment
值进行端口配置。
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
您可以使用注入@LocalServerPort
与相同的值@Value("${local.server.port}")
。
随机端口测试配置:
@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
...
@LocalServerPort //to inject port value
int port;
}
@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
它从server.port
if定义中获取值。
@TestPropertySource(properties = "server.port=9192")
,则它将覆盖其他定义的值。src/test/resources/application.properties
(如果存在)中获取值。8080
。例:
定义的端口测试配置:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
当Spring Boot应用程序启动时,嵌入式服务器(例如Tomcat)将使用默认端口启动。嵌入式tomcat默认以8080端口开头。有许多更改默认服务器端口的方法。
使用属性文件(.properties / .yml)
要使用属性文件更改服务器端口,我们需要配置server.port属性。
一个。在类路径中使用application.properties,例如 src \ main \ resources \ application.properties
server.port = 8585
服务器将以8585端口启动。要获得随机服务器端口,请将0分配给该属性。
server.port = 0
现在,spring boot将在系统中任何服务器当前未使用的端口上启动服务器。
b。在类路径(例如 src \ main \ resources \ application.yml)中使用application.yml。
server:
port: 8585
服务器将以8585端口启动。
对于随机端口,请分配0。
server:
port: 0
将Java命令与--server.port或-Dserver.port一起使用
假设我们有一个名为my-app.jar的可执行JAR,然后在使用java命令启动spring boot应用程序时,可以使用如下参数。
使用--server.port
java -jar my-app.jar --server.port=8585
使用-Dserver.port
java -jar -Dserver.port=8585 my-app.jar
服务器将以8585端口启动。
简而言之,将Java命令与--port或-Dport一起使用
为了简写--server.port和-Dserver.port,我们可以删除server关键字并将其设为任何短关键字,例如--port和-Dport。我们可以使用任何短关键字。在这里,我们使用port作为short关键字。为此,我们需要在属性文件中配置占位符,如下所示。
使用application.properties
server.port=${port:8282}
使用application.yml
server:
port: ${port:8282}
如果我们不将端口作为参数传递,则默认情况下,服务器将从8282开始。如果我们需要其他端口,则需要按如下所示在参数中传递所需的端口。假设我们有一个名为my-app.jar的可执行JAR。
使用--port
java -jar my-app.jar --port=8585
使用-Dport
java -jar -Dport=8585 my-app.jar
服务器将以8585端口启动。
通过编程将SERVER_PORT与SpringApplication一起使用
SpringApplication有一个方法setDefaultProperties(),用于更改Spring Boot的默认属性。假设我们要更改默认端口,那么我们需要创建一个Map并使用SERVER_PORT键放置一个端口。查找示例。
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);
}
}
春季启动将使用8585端口启动服务器。
如果使用gradle作为构建工具,则可以在application.yml文件中将服务器端口设置为:
server:
port: 8291
如果使用的是maven,则可以在application.properties文件中将端口设置为:
server.port: 8291
server.port = 8291
您可以通过更改application.properties来更改服务器配置中的许多其他内容。如会话超时,地址和端口等。请参阅以下帖子
参考:http : //docs.spring.io/spring-boot/docs/1.4.x/reference/html/common-application-properties.html
我使用了以下几个。
server.session.timeout=1
server.port = 3029
server.address= deepesh
将此添加到您的application.properties
文件中
server.port= 8080
server.port 8080
是Java属性文件的语法错误...
在application.properties
文件中,添加以下行:
server.port = 65535
在哪里放置国际剑联:
24.3应用程序属性文件
SpringApplication在以下位置从application.properties文件加载属性,并将它们添加到Spring Environment:
A /config subdirectory of the current directory The current directory A classpath /config package The classpath root
该列表按优先级排序(在列表较高位置定义的属性会覆盖在较低位置定义的属性)。
就我而言,我将其放在jar
文件所在的目录中。
从:
默认情况下,spring boot应用程序从嵌入式tomcat服务器启动,默认端口为8080。spring为您提供了以下不同的自定义选项,您可以选择其中一种。
注意 –您可以使用server.port = 0进行弹簧引导,它将为我们找到任何未分配的http随机端口。
1)application.properties
server.port=2020
2)application.yml
server:
port : 2020
3)以编程方式更改服务器端口
3.1)通过实现WebServerFactoryCustomizer接口-Spring 2.x
@Component
public class MyTomcatWebServerCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// customize the factory here
factory.setPort(2020);
}
}
3.2)通过实现EmbeddedServletContainerCustomizer接口-Spring 1.x
@Component
public class CustomizationBean implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
// customize here
container.setPort(2020);
}
}
4)通过使用命令行选项
java -jar spring-boot-app.jar -Dserver.port=2020
确实,最简单的方法是设置server.port属性。
如果您使用STS作为IDE,从3.6.7版本开始,您实际上具有Spring Properties Editor,用于打开属性文件。
该编辑器为所有Spring Boot属性提供自动完成功能。如果编写端口并按CTRL + SPACE,则server.port将是第一个选项。
希望这一帮助
application.properties => server.port = 8090 application.yml => 服务器 端口:8090
只要有一个application.properties
在src/main/resources
该项目,并给予有
server.port=****
其中,****
是指端口号。
1.1通过属性文件进行更新。
/src/main/resources/application.properties
server.port = 8888
通过yaml文件进行更新。
server:
port: 8888
EmbeddedServletContainerCustomizer
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8888);
}
}
您也可以使用 SERVER_PORT
环境变量来配置Spring Boot端口。只需设置环境变量并重新启动应用程序即可:
set SERVER_PORT=9999 // on windows machine
export SERVER_PORT=9999 // on linux
请注意,如果未在系统范围内设置这些环境变量,则应在同一会话上运行启动应用程序。