在基于老版本的springcloud中使用tomcat部署项目是比较麻烦的,你可能需要在pom.xml中手动排除tomcat来部署到线上环境,而排除tomcat后eclipse中又无法使用SpringBootApplication类启动工程。
在新版本的SpringCloud中,开发者们解决了这个问题,现在使用Tomcat部署项目是非常简单的,只需要简单两步就可以保证本地和线上同时可用。
1、修改Pom.xml配置
tomcat部署war包,所以Maven打包格式要改为war
war
springcloud应用部署通常是一个tomcat部署一个应用,为了方便,把自己的微服务都打成ROOT.war名字的war包
ROOT org.springframework.boot spring-boot-maven-plugin
2、修改启动类
继承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@EnableEurekaServerpublic 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); }}
3、启动测试
- 在eclipse中通过启动类直接启动
- 使用mvn clean package -DskipTests打成war包,然后将war包放入线上tomcat启动
注:配置文件中的端口号最好与tomcat保持一致(默认优先tomcat配置),否则容易造成混乱
架构师Q群:618578034
spring cloud社区群(需加微信拉您进入)
微信公众号:java架构师修行
本公众号将要使用一年的时间,按照JAVA高级软件架构师实战培训的路线发布一期完整的架构文章,难度由浅入深,适合有一定开发基础想转架构和正在做初级架构开发的人员学习,欢迎关注