如何让 Spring Boot 项目发布到 Tomcat 服务器

刚开始接触 SpringBoot 的时候很不习惯,因为习惯了传统的 web 项目的打包和部署方式,SpringBoot 在为我们提供方便的时候,也给部署带来了一点点小小的“麻烦”,下面的这些步骤是我在工作中的实践,和大家分享。

第 1 步:将这个 Spring Boot 项目的打包方式设置为 war。

<packaging>war</packaging>

这里还要多说一句, SpringBoot 默认有内嵌的 tomcat 模块,因此,我们要把这一部分排除掉。 
即:我们在  spring-boot-starter-web  里面排除了  spring-boot-starter-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>

第 2 步:提供一个  SpringBootServletInitializer  子类,并覆盖它的  configure  方法。我们可以把应用的主类改为继承 SpringBootServletInitializer 。或者另外写一个类。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {

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

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

注意:部署到 tomcat 以后,访问这个项目的时候,须要带上这个项目的 war 包名。

另外,我们还可以使用 war 插件来定义打包以后的 war 包名称,以免 maven 为我们默认地起了一个带版本号的 war 包名称。例如:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <warName>yemao</warName>
    </configuration>
</plugin>

例如:http://localhost:8080/Boot-1.0/user/show/18

其中,Boot-1.0 是我放在 tomcat 上的 war 包名。

参考文章: 
Spring Boot由jar包转成war包 - 汪云飞记录本 - ITeye技术网站 
http://wiselyman.iteye.com/blog/2145442 
使用Spring Boot快速构建应用 
http://www.infoq.com/cn/news/2014/01/spring-boot/



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值