SpringBoot服务设置禁止server.point端口的使用

问题:

当项目服务引用了jar spring-boot-starter-web后

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

所以项目一启动,就会使用server.point端口
如果没有配置 server.port 也会默认去找8080

解决办法:

方法1.

在配置文件加上:

spring:
  main:
    allow-bean-definition-overriding: true
    web-application-type: none

方法2:

在启动类设置 setWebApplicationType

public static void main(String[] args) {
	try {
	    SpringApplication app = new SpringApplication(TestApplication.class);
        app.setWebApplicationType(WebApplicationType.NONE);
        app.setBannerMode(Banner.Mode.CONSOLE);
        app.setBanner(new ResourceBanner(new ClassPathResource("config/banner.txt")));
        app.run(args);
	} catch (Exception e) {
		e.printStackTrace();
	 }
 }

public static void main(String[] args) {
	new SpringApplicationBuilder(Application .class)
                .web(WebApplicationType.NONE) 
                .run(args);
}

setWebApplicationType是Spring Framework中的方法,用于设置Web应用程序的类型。在Spring Boot中,可以通过这个方法来指定应用程序的类型,例如Servlet、Reactive或None。

在Spring Boot中,可以使用setWebApplicationType方法来设置应用程序的类型。这个方法通常在SpringApplication类的main方法中调用,用于指定应用程序的类型。

通过setWebApplicationType方法将Web应用程序类型设置为Servlet。这样可以确保Spring Boot应用程序将以Servlet应用程序的形式运行。

除了WebApplicationType.SERVLET,还有WebApplicationType.REACTIVE和WebApplicationType.NONE这两个选项,分别用于设置Web应用程序类型为Reactive和无Web应用程序(即非Web应用程序)。

总之,setWebApplicationType方法是用于在Spring Boot中设置Web应用程序类型的重要方法,它可以影响应用程序的运行方式和行为。

你可能感兴趣的:(spring,boot,后端,java)