SpringBoot发布到独立的Tomcat中运行

大家在使用SpringBoot的时候会发现它是基于Tomcat的,然后可以使用启动类直接运行main函数一样启动。那么怎么把它发布到独立的Tomcat中执行呢? 启动很简单轻松配置几下即可。

一:修改打包方式

<packaging>war</packaging>

二:由于SpringBoot默认嵌入了Tomcat,所以需要把它消除掉

               <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>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>

三:集成SpringBootServletInitializer,然后重写configure,将Spring Boot的启动类设置进去。

@SpringBootApplication
@ComponentScan (basePackages = "com.zz")
public class App extends SpringBootServletInitializer {

    protected SpringApplicationBuilder configure (SpringApplicationBuilder builder) { // 设置启动类,用于独立tomcat运行的入口
        return builder.sources (App.class);
    }

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

四:打WAR包


当然也可以用maven命令打包,我就不一一列出了。

五:测试(把打好包直接丢入tomcat webapps目录下然后启动就可以了


启动成功图


请求URL:  http://ip:port/[打成的war包的名称]/方法路径或者页面路径。

方法定义


浏览器请求该方法


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章