Springboot 项目默认端口是8080,可以在启动的时候从打印日志中查看:
因此,创建SpringBoot项目,启动后,默认的访问路径即主机IP+默认端口号8080:http://localhost:8080/
如果想使用其他端口, 需要进行额外配置:
方式一 修改配置文件
配置文件有两种,一种是application.properties, 一种为application.yml。
使用properties文件方式:
修改src目录下main目录下resources目录下的application.properties文件,如果没有需要创建。
#端口号
server.port = 8888
#项目名,如果不设定,默认是 /
server.servlet.context-path : /demo
使用yml文件方式:
修改src目录下main目录下resources目录下的application.yml文件,如果没有需要创建。(相同的头就直接前面空三格子即可,这样就将一些同类型的配置放一块了,比起properties更简单)
server:
#端口号
port: 8888
#项目名,如果不设定,默认是 /
servlet:
context-path: /demo
其中port属性可以配置端口,context-path属性配置项目根路径。
说明:
1.项目根路径:通常可以设置项目名,如果不设定,默认是 /
按照上述设置为demo后,最后项目实际的访问路径为:http://127.0.0.1:8888/demo
例如:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Hello {
@RequestMapping("/hello")
public String hello(){
return "Hello World!";
}
}
感觉设置根路径主要是为了防止其他人通过ip就能直接访问项目。
2. 项目根路径的设置原来可以直接放在server项下面,Spring Boot 2.0 开始要求放在servlet项下面。
# 老版本
server.context-path=/myprojectname
# 新版本
server.servlet.context-path=/myprojectname
方式二 添加代码 可以实现动态配置(读取数据库等)
在Application.java文件(启动入口)中加入以下代码,其中 factory.setPort(8888); 设置了端口号为8888,可以在代码中动态调整。
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){
return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.setPort(8888);
}
};
}
说明:代码设置原先使用重写EmbeddedServletContainerCustomizer类的方式进行,Spring Boot2.0以上配置嵌入式Servlet容器时EmbeddedServletContainerCustomizer类被WebServerFactoryCustomizer替代。
Spring Boot2.0以前版本可使用:
package com.yellowcong.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
public class ConfigMain extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ConfigMain.class);
}
public static void main(String[] args) {
SpringApplication.run(ConfigMain.class, args);
}
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
//指定项目名称
container.setContextPath("/demo");
//指定端口地址
container.setPort(8888);
}
}
参考
1. https://blog.youkuaiyun.com/u011517841/article/details/85001908
2. https://blog.youkuaiyun.com/yelllowcong/article/details/79216889
3. https://www.jb51.net/article/153735.htm https://jingyan.baidu.com/article/63f23628cc5ab64209ab3d1d.html
4. https://blog.youkuaiyun.com/qq_41722101/article/details/98488568
5. https://blog.youkuaiyun.com/Javaer_dog/article/details/83153613