Spring Boot – 如何configuration端口
寻找如何在Spring启动应用程序中configuration端口:
@Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/") @ResponseBody String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); } }
这是所有的来源:)
正如文档中所说http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-change-the-http-port
使用命令行选项将server.port
设置为系统属性jvm --server.port=8090
或在/src/main/resources/
添加application.properties
server.port = 8090
随机端口使用
server.port=0
在Spring Boot应用程序中,有两种主要方法可以更改Embedded Tomcat中的端口。
修改application.properties
首先,您可以尝试/ resources文件夹中的application.properties文件:
修改VM选项
第二种方法,如果你想避免修改任何文件,并检查你只需要在本地的东西,你可以使用vm arg:
转到运行 – >编辑configuration – > VM选项
-Dserver.port=8090
另外,如果您需要更多信息,您可以在这里查看以下博客文章: 更改Spring Boot应用程序中的端口
另外,您也可以通过编程来configuration端口
@Configuration public class ServletConfig { @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return (container -> { container.setPort(8012); }); } }
你可以在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
如果你正在使用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。
如果你想强制在属性文件中的任何环境variables的端口,你只需要写:
server.port=8888
由于Spring Boot提供了各种configuration外部化机制 (通过依次连接到Environment
对象的各种PropertySource
实现和/或处理器),可以通过以下方法设置jar包之外的任何属性:
-
通过命令行parameter passing属性
java -jar <path/to/my/jar> --server.port=7788
-
从
SPRING_APPLICATION_JSON
(Spring Boot 1.3.0+)中的propety-
在U * IX shell中定义环境variables:
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>
-
通过命令行parameter passing:
java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
-
-
定义系统属性
java -Dserver.port=7788 -jar <path/to/my/jar>
-
定义OS环境variables
-
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>
您可以将上述方法组合在一起,列表中的前一个configuration优先于后一个。
例如:
SERVER_PORT=2266 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
服务器将启动并在端口7788上侦听。
这在提供具有较低优先级的PropertySources中的默认属性时非常有用(通常打包在归档中或在源代码中编码),然后在运行时环境中覆盖它。 而这正是Spring Boot的devise理念:
开箱即用,但随着需求开始偏离默认设置,快速退出。
SERVER_NAME
to sever.name
转换是由Realxed Binding完成的。
如果你想在本地运行而不是使用它,
mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'
您可以通过在您的configuration(基于Java或xml)中重写EmbeddedServletContainerFactory
bean来指定端口。 在那里你可以指定使用的embedded式servlet容器的端口。 请参阅Spring Boot – Core “embedded式Servlet容器支持”一节和示例。 希望这可以帮助。
当你需要编程的方式,你可以在启动时设置它:
System.getProperties().put( "server.port", 80 ); SpringApplication.run(App.class, args);
这可能有助于像环境依赖端口的东西。 祝你今天愉快
在资源中存在的application.properties
文件中:
server.port=8082
为了扩大其他答案:
testing文档中有一节介绍了如何在集成testing中configuration端口:
- 41.3testingSpring Boot应用程序
- 41.3.3使用随机端口
在集成testing中,使用注释@SpringBootTest
和webEnvironment
值进行端口configuration。
随机端口:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
您可以使用与@Value("${local.server.port}")
相同的@Value("${local.server.port}")
注入该值。
- 例:
随机端口testingconfiguration:
@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
取值。
- 如果使用
@TestPropertySource(properties = "server.port=9192")
定义,则会覆盖其他定义的值。 - 如果不是,则从
src/test/resources/application.properties
获取值(如果存在)。 - 最后,如果没有定义,它将以默认的
8080
开始。
例:
定义的端口testingconfiguration:
@RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) @TestPropertySource(properties = "server.port=9192") public class DemoApplicationTests { @Test public void contextLoads() { } }
-
正如大家所说,你可以在application.properties中指定
server.port = 9000 (可以是任何其他值) -
如果您在项目中使用弹簧执行器,默认情况下指向
8080,如果你想改变它,然后在application.properties中提到
management.port = 9001 (可以是任何其他值)
事实上,最简单的方法是设置server.port属性。
如果您使用STS作为IDE,则从版本3.6.7开始,您实际上拥有用于打开属性文件的弹簧属性编辑器 。
该编辑器为所有Spring Boot属性提供自动完成function。 如果你编写端口并按CTRL + SPACE, server.port将是第一个选项。
您可以在application.properties文件中configuration端口
server.port=8090
要么
在运行时你可以使用命令行arg
-Dserver.port=8090
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); } }
您可以在下面的方法中添加端口。
-
运行 – >configuration部分
-
在
application.xml
添加server.port=XXXX
你可以在/ src / main / resources /下的application.properties中设置它,
server.port = 8090
将其添加到您的application.properties文件中
server.port 8080
在application.properties中包含以下属性
server.port = 8080
只需要在项目的src/main/resources
中有一个application.properties
,并在那里
server.port=****
其中****
是****
。
当Spring启动应用程序启动时,embedded式服务器(如Tomcat)以默认端口启动。 embedded式tomcat默认启动8080端口。 有很多方法可以更改默认的服务器端口。
使用属性文件(.properties / .yml)
要使用属性文件更改服务器端口,我们需要configurationserver.port属性。
一个。 在类path中使用application.properties,例如src \ main \ resources \ application.properties
server.port = 8585
服务器将以8585端口开始。 要获得随机的服务器端口,请将0指定给该属性。
server.port = 0
现在spring启动将启动服务器在系统中的任何服务器当前不使用的端口。
湾 在类path中使用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引导应用程序时,我们可以使用如下参数。
使用–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和-Dserver.port,我们可以删除服务器关键字,并将其设置为诸如–port和-Dport之类的简短关键字。 我们可以使用任何短的关键字。 这里我们使用端口作为简短的关键字。 为了实现它,我们需要在属性文件中configuration占位符,如下所示。
使用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端口启动。
以编程方式在SpringApplication中使用SERVER_PORT
SpringApplication有一个方法setDefaultProperties(),用于更改弹簧引导默认属性。 假设我们想更改默认端口,那么我们需要创build一个Map,并把一个带有SERVER_PORT键的端口。 find例子。
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端口的服务器。
您还可以使用SERVER_PORT
环境variables来configurationSpring Boot端口。 只需设置环境variables并重新启动应用程序:
set SERVER_PORT=9999 // on windows machine export SERVER_PORT=9999 // on linux
请注意,如果您没有在系统范围内设置这些环境variables,则应该在同一个会话上运行启动应用程序。
默认端口是:8080,但我们可以在application.properties中自定义端口号,如下所示
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp server.port = 5050 -- #here we can give any port number.
大多数情况下,由于embedded式Tomcat,springboot在port:8080
上运行。 在某些情况下,它可能会抛出一个port 8080 already in use
的错误port 8080 already in use
。 为了避免这种问题,我们可以configuration服务器端口。
使用application.properties
添加server.port=9898
在运行时configuration
用下面的参数运行你的程序。
spring-boot:run -Drun.jvmArguments='-Dserver.port=8081'
使用属性server.port = 8080像其他答案中提到的例子肯定是一种方式。 只是想提一下,你也可以暴露一个环境属性:
SERVER_PORT = 8080
由于春季开机是能够取代“。” 对于“_”而言,对于最近版本中的环境variables而言更低。 这在容器中特别有用,你所要做的就是定义这个环境variables,而不用添加/编辑application.properties或者通过命令行传递系统属性(即-Dserver.port = $ PORT)
您可以在spring boot项目的resources文件夹中的application.properties文件中configuration您的端口。 server.port =“你需要的端口”
有三种方法可以做到这一点
1在application.properties文件中设置server.port属性
server.port = 8090
2在application.yml中设置服务器端口属性
服务器:端口:8090
3在main方法中将属性设置为系统属性
System.setProperty( “server.port”, “8090”);
这个问题是第一个结果,如果你谷歌的Gradle的spring港口 。
如果你使用Gradle,你可以做这样的事情,如果你已经应用了Spring Boot Gradle插件:
bootRun { args += ["--server.port=[PORT]"] }
有关更复杂的答案,请参阅我的答案。
在我的情况下添加声明
server.port=${port:8081}
覆盖默认的tomcat服务器端口。