问题:
当项目服务引用了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应用程序类型的重要方法,它可以影响应用程序的运行方式和行为。