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.csdn.net/u011517841/article/details/85001908

2. https://blog.csdn.net/yelllowcong/article/details/79216889

3. https://www.jb51.net/article/153735.htm https://jingyan.baidu.com/article/63f23628cc5ab64209ab3d1d.html

4. https://blog.csdn.net/qq_41722101/article/details/98488568

5. https://blog.csdn.net/Javaer_dog/article/details/83153613

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐