spring boot本身內(nèi)置tomcat,我們一般只需要引入tomcat的依賴即可.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
但是默認(rèn)的端口有可能被占用了漏策,提示如下信息
Description:
The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.
Action:
Verify the connector's configuration, identify and stop any process that's listening on port 8080, or configure this application to listen on another port.
別急实束,我們可以自定義端口,有三種方法:
1.在配置文件中設(shè)置:
使用application.properties
server.port=8888
使用application.yml
server:
port: 8888
- 直接自定義ConfigurableEmbeddedServletContainer.通過自己注冊TomcatEmbeddedServletContainerFactory戒傻,
JettyEmbeddedServletContainerFactory或UndertowEmbeddedServletContainerFactory
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.setPort(9000);
factory.setSessionTimeout(10, TimeUnit.MINUTES);
factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/notfound.html");
return factory;
}
- Spring boot中自定義端口需要入口類實(shí)現(xiàn)ConfigurableEmbeddedServletContainer接口.如下代碼
@RestController
@EnableAutoConfiguration
public class CustomPortController implements EmbeddedServletContainerCustomizer {
/**
* 自定義端口
* @param container
*/
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8888);
}
@RequestMapping("/")
public String setPort(){
return "自定義端口:8888";
}
public static void main(String[] args) {
SpringApplication.run(CustomPortController.class,args);
}
}