• 玩转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,把<packaging>jar</packaging>修改为<packaging>war</packaging>

    并增加如下maven依赖:

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
    </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.0</modelVersion>
    
        <groupId>com.github.carter659</groupId>
        <artifactId>spring10</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.4.2.RELEASE</version>
        </parent>
    
        <name>spring10</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
            <finalName>spring10</finalName>
        </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包。

     一、本地tomcat部署


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

    运行setup.bat

    启动tomcat

    运行效果为:

     二、新浪云sae的tomcat部署


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

    选择java云容器

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

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

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

    总结


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

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

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

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

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

    返回玩转spring boot系列目录

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

  • 相关阅读:
    龙果支付系统
    Java并发多线程
    StringRedisTemplate常用操作
    统一支付平台转型
    IntValue()方法 和 ValueOf()方法
    Java中一些知识的归纳总结
    mybatis的一些特殊符号标识(大于,小于,等于,不等于)
    MySQL中大于等于小于等于的写法
    boost::bind应用示例
    VC除零异常(错误)捕获
  • 原文地址:https://www.cnblogs.com/GoodHelper/p/6262512.html
Copyright © 2020-2023  润新知