如何配置Spring Boot应用程序侦听的TCP/IP端口,因此它不使用默认端口8080.
如果您想在本地运行它,请使用此 -
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
从Spring Boot 2.0开始,这里有一个有效的命令(线索在这里):
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
将其添加到您的application.properties
文件中
server.port= 8080
在application.properties
文件中,添加以下行:
server.port = 65535
在哪里放置那个fie:
24.3应用程序属性文件
SpringApplication从以下位置的application.properties文件加载属性,并将它们添加到Spring环境中:
A /config subdirectory of the current directory The current directory A classpath /config package The classpath root列表按优先级排序(在列表中较高位置定义的属性将覆盖在较低位置中定义的属性).
在我的情况下,我把它放在jar
文件所在的目录中.
从:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-application-property-files
在application.properties文件中提供端口号将解决该问题
server.port = 8080
"端口取决于您的选择,您希望托管应用程序的位置"
正如在所述的文档任一组server.port
使用命令行选项来JVM中的系统属性-Dserver.port=8090
或添加application.properties
在/src/main/resources/
与
server.port=8090
用于随机端口使用
server.port=0
您可以通过覆盖EmbeddedServletContainerFactory
配置中的bean 来指定端口(基于java或xml).在那里,您可以为使用的嵌入式servlet容器指定端口.请参阅Spring Boot - Core "嵌入式Servlet容器支持"一节和示例.希望这可以帮助.
你可以在java代码中设置port:
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
在application.properties
资源中存在的文件中:
server.port=8082
根据您使用的应用程序配置文件,有三种方法可以执行此操作
a)如果您正在使用application.properties文件集
server.port = 8090
b)如果您正在使用YAML格式的application.yml文件集服务器端口属性,如下所示
server: port: 8090
c)您还可以在main方法中将属性设置为System属性
System.setProperty("server.port","8090");
在Spring Boot应用程序中,有两种主要方法可以更改嵌入式Tomcat中的端口.
修改application.properties
首先,您可以尝试/ resources文件夹中的application.properties文件:
server.port = 8090
修改VM选项
第二种方法,如果你想避免修改任何文件并检查你在本地只需要的东西,你可以使用vm arg:
转到运行 - >编辑配置 - > VM选项
-Dserver.port=8090
此外,如果您需要更多信息,可以在此处查看以下博客文章: 更改Spring Boot应用程序上的端口
如Spring文档中所述,有几种方法可以做到:
您可以在命令行中设置端口(例如8888)
-Dserver.port=8888
要么 --server.port=8888
示例: java -jar -Dserver.port=8888 test.jar
或者在application.properties中设置端口
server.port=${port:4588}
或(在application.yml中使用yaml语法)
server: port: ${port:4588}
如果在命令行中设置-Dport(或-Dserver.port)传递的端口,则将考虑此端口.如果没有,则默认端口为4588.
如果要在属性文件中强制执行任何环境变量的端口,则只需编写:
server.port=8888
实际上,最简单的方法是设置server.port属性.
如果您使用STS作为IDE,从版本3.6.7开始实际上有Spring属性编辑器用于打开属性文件.
此编辑器为所有Spring Boot属性提供自动完成功能.如果您编写端口并按CTRL + SPACE,server.port将是第一个选项.
当您需要以编程方式执行此操作时,可以在启动期间进行设置:
System.getProperties().put( "server.port", 80 ); SpringApplication.run(App.class, args);
这可能有助于环境相关的端口.祝你今天愉快
只需拥有一个项目并application.properties
放在src/main/resources
那里
server.port=****
where ****
指的是端口号.
当Spring启动应用程序启动时,Tomcat等嵌入式服务器以默认端口启动.嵌入式tomcat默认以8080端口启动.有许多方法可以更改默认服务器端口.
使用属性文件(.properties/.yml)
要使用属性文件更改服务器端口,我们需要配置server.port属性.
一个.在类路径中使用application.properties,例如 src\main\resources\application.properties
server.port = 8585
服务器将以8585端口启动.要获取随机服务器端口,请为该属性指定0.
server.port = 0
现在,spring boot将在系统中任何服务器当前未使用的端口上启动服务器.
湾 在类路径中使用application.yml,例如 src\main\resources\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端口开始.
在短时间内使用带有--port或-Dport的java命令
简而言之,我们可以删除server关键字并将其设为任何短关键字,例如--port和-Dport.我们可以使用任何短关键字.这里我们使用port作为短关键字.为了实现它,我们需要在属性文件中配置占位符,如下所示.
使用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引导默认属性.假设我们想要更改默认端口,那么我们需要创建一个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); } }
Spring启动将使用8585端口启动服务器.
如果您正在使用application.yml
添加以下行
server: port: 9000
当然0为随机端口.
希望这一个帮助
application.properties=> server.port=8090 application.yml=> server port:8090
此外,您可以以编程方式配置端口
@Configuration public class ServletConfig { @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return (container -> { container.setPort(8012); }); } }
由于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>
定义OS环境变量
U*IX Shell
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
转化所做轻松绑定.
扩展其他答案:
测试文档中有一节介绍如何在集成测试中配置端口:
41.3测试Spring Boot应用程序
41.3.3使用随机端口
在集成测试中,使用注释@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() { } }
使用属性server.port = 8080,例如在其他答案中提到的绝对是一种方法.只是想提一下你也可以暴露一个环境属性:
SERVER_PORT=8080
由于春季靴子能够取代"." 对于"_"而言,对于最近版本中的环境变量,请将其降低到UPPER大小写.这在容器中特别有用,你需要做的就是定义那个环境变量,而无需application.properties
通过命令行添加/编辑或传递系统属性(即-Dserver.port=$PORT
)
包括以下房产 application.properties
server.port=8080
By default spring boot app start with embedded tomcat server start at default port 8080. spring provides you with following different customization you can choose one of them.
NOTE – you can use server.port=0 spring boot will find any unassigned http random port for us.
1) application.properties
server.port=2020
2) application.yml
server: port : 2020
3) Change the server port programatically
3.1) By implementing WebServerFactoryCustomizer interface - 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) By Implementing EmbeddedServletContainerCustomizer interface - Spring 1.x
@Component public class CustomizationBean implements EmbeddedServletContainerCustomizer { @Override public void customize(ConfigurableEmbeddedServletContainer container) { // customize here container.setPort(2020); } }
4) By using command line option
java -jar spring-boot-app.jar -Dserver.port=2020
通过更改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 = 9000(可以是任何其他值)
如果在项目中使用弹簧执行器,默认情况下它指向
8080,如果要更改它,则在application.properties中提及
management.port = 9001(可以是任何其他值)
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); } }
您可以通过以下方法添加端口。
运行->配置部分
在application.xml
添加server.port=XXXX
您可以在/ src / main / resources /下的application.properties中进行设置
server.port = 8090
您还可以使用SERVER_PORT
环境变量来配置Spring Boot端口。只需设置环境变量并重新启动应用程序即可:
set SERVER_PORT=9999 // on windows machine export SERVER_PORT=9999 // on linux
请注意,如果未在系统范围内设置这些环境变量,则应在同一会话上运行启动应用程序。