Spring Boot项目含多个启动类,如何选择打包后的启动入口?

Spring Boot项目多个启动类:Jar包启动入口的选择

在Spring Boot项目开发中,有时会遇到包含多个启动类的场景。本文将解决如何从多个启动类中选择一个作为打包后Jar包的启动入口的问题。

核心

问题在于Maven在构建Spring Boot应用的Jar包时,需要明确指定应用程序的入口类。默认情况下,Maven只能识别一个主类作为启动类。如果存在多个带有@SpringBootApplication注解的类,Maven无法自动判断。

解决方案:使用Spring Boot Maven插件配置mainClass

通过Spring Boot Maven插件(spring-boot-maven-plugin)的mainClass配置项,我们可以指定打包时使用的主类。假设项目中有两个启动类:com.example.App1com.example.App2。要启动com.example.App1,需在pom.xml文件的节点下添加如下配置:


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                com.example.App1
            
        
    

执行mvn clean package后生成的Jar包将以com.example.App1作为启动类。要启动com.example.App2,只需将mainClass的值更改为com.example.App2即可。 此方法灵活控制最终Jar包的启动入口,方便管理和部署包含多个启动类的Spring Boot应用。