现在springboot自带tomcat所以很少人都不用外置tomcat了

由于tomcat发包升级只需要替换改动的文件就可以 比较方便所以打算用外置tomcat来启动项目

给大家分享一下

第一步要把我们的打包方式改为war包 在我们的pom文件中添加

<packaging>war</packaging>

其次要假如tomcat的依赖

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

最后我们把内置的tomcat给去除

然后加上一下构建工具

<build>
        <plugins>
            <!-- 把原来的 spring-boot-maven-plugin 注释掉/删掉-->

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
            </plugin>

        </plugins>
        <finalName>qytb</finalName>
    </build>

最后 修改SpringBoot的启动类
修改启动类,使其继承SpringBootServletInitializer类,重写configure方法。
如果SpringBoot帮我们建立了SpringBootServletInitializer类文件,直接删掉,修改最开始的SpringBootApplication 项目启动类,就是有main方法的那个。

@SpringBootApplication
@ServletComponentScan
@ComponentScan(basePackages = {"com.example.controller", "com.example.service"})
@MapperScan(basePackages = {"com.example.dao"})
public class SpringbootdemoApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringbootdemoApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringbootdemoApplication.class, args);
    }
}

这样就可以用tomcat启动了

需要给tomcat配置

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐