首页 > 编程语言 > 详细

Spring Boot以War包启动

时间:2018-10-17 13:48:22      阅读:152      评论:0      收藏:0      [点我收藏+]

1.IDEA Spring Initializer自动构建的war包项目,自动生成的Initializer类,用于外部Tomcat容器启动该项目时调用,如果仍然使用主类main函数方式启动则与此类无关(Debug验证过了)

2.自动构建的war包项目,pom.xml中引入了:

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

注释的scope是我注释的,生成时打开着,这样显式引入的仍然是Spring Boot内嵌Tomcat,scope造成运行时没有内嵌Tomcat(只有编译时有),虽然引入了:

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

仍然提示错误:

Unregistering JMX-exposed beans on shutdown

所以需要注释掉scope,这样内嵌的Tomcat可以启动Spring Boot Web项目,但打war包放在外置Tomcat时就不需要了,要使用exclude干掉内嵌Tomcat,或像现在这样使用scope在运行时不使用内嵌Tomcat。这时需要外置Tomcat使用这里生成的Initializer类:

package com.xiaobai.springbootwebdemo;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringbootwebdemoApplication.class);
}

}

Initializer类分析:

 

Spring Boot以War包启动

原文:https://www.cnblogs.com/free-wings/p/9803350.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!