SpringBoot的多个项目同时启动

  • Post author:
  • Post category:其他

SpringBoot自带Tomcat,直接运行main方法里面的SpringApplication.run即可,并且访问时不需要带项目名。

如果eclipse里面有两个SpringBoot项目并且controller层的访问路径一样,并且由于没有路径名,不能同时跑两个main方法,若同时跑两个main方法肯定端口号被占用。那如何同时启动两个项目。

question:

如何同时访问两个SpringBoot项目?

help:

只需要打包成war包,放入Tomcat中而不是SpringBoot自带的Tomcat中即可。那么访问就需要:localhost:8080/项目名/路径 即可解决。

方法:

1.去掉Springboot中的tomcat的jar即可

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>log4j-over-slf4j</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2.加入本地的Tomcat

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

3.让启动SpringBoot的类继承SpringBootServletInitializer并实现它的configure方法

@SpringBootApplication
public class StartProject extends SpringBootServletInitializer{
    public static void main(String[] args) {
        SpringApplication.run(StartProject.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return super.configure(builder);
    }
}

4.把项目打成war包(还可自定义项目名)

<build>
    <finalName>Maven_SpringBoot_Demo1</finalName>
    <plugins>
        <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-war-plugin</artifactId>
               <configuration>
                   //这里叫什么名之后包就叫什么名
                   <warName>bootTest</warName>
               </configuration>
           </plugin>
    </plugins>
</build>

5.测试即可成功

这里写图片描述


版权声明:本文为m0_67392811原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。