BAE部署springboot项目

由于近期想重新开发一个微信公众号,需要将一年前的web项目,转为spring boot微服务项目,因此有了这篇文章的诞生。

BAE

BAE,百度应用引擎、百度云,与此类似的有SAE,阿里云等。

相当于在百度云上购买自己的服务器及域名,适用于node.js、python、php、java项目。

一、使用BAE基础版

在部署列表一栏,添加部署,可以购买自己需要的服务。(本文代码版本工具为SVN,项目类型java8-tomcat)

注:可根据自身需求设置执行单元参数,已提升服务性能。

部署后,复制SVN地址。

二、BAE添加项目

将项目代码上传到BAE提供的SVN地址上,在此过程中遇到一系列问题,一下将一一说明。

1、由于BAE上不能部署jar包的项目,因此需将springboot项目打成war,如下:

  a.先将pom文件,做一下处理,去除springboot自带的tomcat容器,并添加外部tomcat依赖。

    
<packaging>war</packaging>
    ...
    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加servelt依赖 --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency>

  b.springboot启动类继承SpringBootServletInitializer,并添加如下代码:

@Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
        return builder.sources(启动类名称.class);
    }

  c.使用maven命令将项目打成war包,

  mvn clean package -Dmaven.test.skip=true

  d.如果需要指定生成war的名字,可以在pom文件中设置:

  

<build>
    <finalName>war包名称</finalName>
            ...
            ...
</build>        

2、在项目的target目录下复制生成的war包,上传至BAE提供的svn地址上,并在浏览器中访问项目路径。

注:BAE下默认为ROOT.war,如需访问其他war包,路径应为:域名+war包名称,访问项目路径为:域名+war包名称+方法路径。

3、随着项目代码的增加,需要及时提升BAE的性能,否则服务将出现异常。

4、必须注意版本问题,由于JDK使用的为1.8,tomcat为7,导致项目部署到BAE上启动出错,无法使用。因此必须注意版本兼容问题。

 

附:BAE入门指南

后期文章更精彩,期待您的关注!

posted on 2018-02-03 23:07  节奏35  阅读(408)  评论(0编辑  收藏  举报

导航