在基于老版本的springcloud中使用tomcat部署项目是比较麻烦的,你可能须要在pom.xml中手动排除tomcat来部署到线上环境,而排除tomcat后eclipse中又没法使用SpringBootApplication类启动工程。java
在新版本的SpringCloud中,开发者们解决了这个问题,如今使用Tomcat部署项目是很是简单的,只须要简单两步就能够保证本地和线上同时可用。web
tomcat部署war包,因此Maven打包格式要改成warspring
<packaging>war</packaging>
springcloud应用部署一般是一个tomcat部署一个应用,为了方便,把本身的微服务都打成ROOT.war名字的war包tomcat
<build> <finalName>ROOT</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
继承SpringBootServletInitializer类,复写configure方法微信
package com.mayi.springcloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class CommonserviceEurekaApplication extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(CommonserviceEurekaApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(CommonserviceEurekaApplication.class); } }
注:配置文件中的端口号最好与tomcat保持一致(默认优先tomcat配置),不然容易形成混乱架构
架构师Q群:618578034eclipse
spring cloud社区群(需加微信拉您进入)maven
微信公众号:java架构师修行ide
本公众号将要使用一年的时间,按照JAVA高级软件架构师实战培训的路线发布一期完整的架构文章,难度由浅入深,适合有必定开发基础想转架构和正在作初级架构开发的人员学习,欢迎关注spring-boot