玩转spring boot——war部署

前言


 

之前部署spring boot应用是通过直接输入命令“java -jar”来实现的。而有些情况,由于部署环境的制约,只能把项目从jar转换成war才能部署,如新浪云sae的java环境容器。那怎样转换成war项目呢? 其实非常简单,只需要App类继承SpringBootServletInitializer,并重写“protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)” 方法即可

package com.github.carter659.spring10;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

/**
 * 博客出处:http://www.cnblogs.com/GoodHelper/
 * 
 * @author 刘冬
 *
 */
@SpringBootApplication
public class App extends SpringBootServletInitializer {

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

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // TODO Auto-generated method stub
        // return super.configure(builder);
        return builder.sources(App.class);
    }
}

 

修改pom.xml,把jar修改为war

并增加如下maven依赖:

<dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-tomcatartifactId>
            <scope>providedscope>
dependency>

因为spring boot默认会嵌入tomcat。

 完整的pom.xml为:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.github.carter659groupId>
    <artifactId>spring10artifactId>
    <version>0.0.1-SNAPSHOTversion>
    <packaging>warpackaging>

    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>1.4.2.RELEASEversion>
    parent>

    <name>spring10name>
    <url>http://maven.apache.orgurl>

    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <java.version>1.8java.version>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-tomcatartifactId>
            <scope>providedscope>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-devtoolsartifactId>
            <optional>trueoptional>
        dependency>
    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
        <finalName>spring10finalName>
    build>
project>
pom.xml

 

其他代码,“MainController.java”和“index.html”:

package com.github.carter659.spring10;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * 博客出处:http://www.cnblogs.com/GoodHelper/
 * 
 * @author 刘冬
 *
 */
@Controller
public class MainController {

    @GetMapping("/")
    public String index() {
        return "index";
    }
}
MainController
DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>玩转spring boot——war部署title>
head>
<body>
    <h1>玩转spring boot——war部署h1>
    <h4>
        <a href="http://www.cnblogs.com/GoodHelper/">from 刘冬的博客
            http://www.cnblogs.com/GoodHelper/a>
    h4>
    <br /> 你好,war
    <br />
    <a href="http://www.cnblogs.com/GoodHelper/">点击访问原版博客a>
body>
html>
index.html

 

最后进入项目的src目录,执行mvn package命令,生成war包。

玩转spring boot——war部署_第1张图片

 

 一、本地tomcat部署


 

把刚才生成的spring10.war复制到tomcat的webapps目录

玩转spring boot——war部署_第2张图片

 

运行setup.bat

玩转spring boot——war部署_第3张图片

启动tomcat

玩转spring boot——war部署_第4张图片

 

运行效果为:

玩转spring boot——war部署_第5张图片

 二、新浪云sae的tomcat部署


 

进入新浪云sae的控制台,创建新应用

玩转spring boot——war部署_第6张图片

 

 

选择java云容器

玩转spring boot——war部署_第7张图片

 

在代码管理菜单中,上传war包

玩转spring boot——war部署_第8张图片

 

在日志管理中能看到spring boot的启动日志:

玩转spring boot——war部署_第9张图片

 

启动完毕后,输入网址就能访问之前部署的项目了:

玩转spring boot——war部署_第10张图片

总结


 

以上是新浪云sae部署的全过程。新浪云部署项目非常简单,非常适合人员紧张的小微创业公司。

在后面的博客中,我还会逐步介绍新浪云自带的持续集成,而持续集成是使用git或svn提交代码后自动构建应用版本,而今天的项目部署只是一个小小的前奏。

 

代码:https://github.com/carter659/spring-boot-10.git

 

如果你觉得我的博客对你有帮助,可以给我点儿打赏,左侧微信,右侧支付宝。

有可能就是你的一点打赏会让我的博客写的更好:)

 

返回玩转spring boot系列目录

参考:http://spring.io/guides/gs/convert-jar-to-war/

 

转载于:https://www.cnblogs.com/GoodHelper/p/6262512.html

你可能感兴趣的:(java,git)