springboot使用war包的形式进行应用的发布部署

在使用springboot这项技术时,我们创建的项目都是以jar的形式进行的,最近偶尔想到了如何换下启动方式,所以这篇文章就出来了。

接下来我们按照下面的步骤一步一步来看下如何使用war包的形式进行项目的发布和部署的吧。

首先我们使用的工具是idea,java版本使用的1.8,下面我们按照图片的教程一步一步去整理我们需要的内容咯。

下面的步骤就是一步一步进行项目的创建过程了,比较容易理解,跟着教程就可以了,过多的内容讲述就省略了。

Tips:记得让自己的电脑可以连上网络,不然无法创建下面的项目流程了。

上面我们进行标注这是一个war包形式,这里注意不要勾选错了。

勾选上面需要的内容,点击下面的下一步,接着完成,这个项目就创建完成了,然后我们继续看下下面如何创建了。

下面我们打开我们的pom文件,发现我们的打包方式现在是war的形式了。

我们需要在我们的主程序中进行下面的信息配置。

package com.wpw.springbootwar;


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;


@SpringBootApplication
//下面SpringBootServletInitializer ,idea快捷键 ctrl+o可以选择对应的方法
public class SpringbootWarApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringbootWarApplication.class);
    }


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


}


上面的方法已经注释了如何进行对应方法的实现和配置,希望你可以知道。写到这了,我们为了可以在页面上进行直观的看出效果,我们自定义一个controller然后里面进行返回一条很简单的信息进行测试。

package com.wpw.springbootwar;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author 微信公众号~后端Coder
 */
@RestController
public class UserController {
    @GetMapping(value = "/hello")
    public String hello() {
        return "hello backCoder";
    }
}


在上面的示例程序中,我们自定义一个controller用于测试,很简单的一条信息返回。

这里我们为了我们接下来的打包名称比较简洁,也就是我们自定义的打包名称,我们需要在pom文件里面进行如下配置。

<build>
        <finalName>hello-war</finalName>//这句就是我们可以进行自定义打包名称的位置
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

好了,我们为了可以很方便的进行打包,我们还是采用了idea上面的打包工具好了,命令也可以。

双击上面的package就可以打包了,然后我们看到我们的控制台出现了下面的success信息就表示我们成功了。

[INFO] Building war: D:\springboot-war\target\hello-war.war
[INFO] 
[INFO] --- spring-boot-maven-plugin:2.2.1.RELEASE:repackage (repackage) @ springboot-war ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

其实在上面我们可以看到我们打的包放在的位置就是target目录下面,我们找到就可以了。

为了我们看下我们打包是否正确我需要将war包上传到自己的服务器的tomcat进行部署下。

这次我们可以使用到了我们上次文章发布的docker容器化技术搭建的tomcat环境了。

我们看到我们的tomcat服务器还是在运行的,这次我们将自己的war包进行在tomcat进行部署了。关于文件如何上传到自己的服务器,推荐winScp工具进行上传,关于如何使用工具请自行搜索。

好了,现在我已经将自己的war包上传到自己的服务器了,接下来我们将war包拷贝到我们的tomcat这样的web容器里面进行启动即可。

关于如何将本地的war包拷贝到容器对应的目录里面,我们可以按照下面的命令进行操作即可。

首先我们使用下面的命令查看自己tomcat容器的容器id

docker ps | grep tomcat

然后我们使用下面的命令进行进入到容器里面,主要是看下webapps目录的路径是什么,其目的就是将自己的war包放入到这个路径下面。

docker exec -it  tomcat容器id bash

进入之后我们ls,可以发现webapps目录,然后 cd webapps目录里面,然后pwd一下就可以找到webapps目录的绝对路径了,下面的路径是自己的。

/usr/local/tomcat/webapps

好了,上面的步骤完成之后,我们终于到了如何将服务的war包拷贝到容器里面这个步骤了。

docker cp hello-war.war  自己的tomcat容器id:/usr/local/tomcat/webapps

好了,我们为了正确性,看下我们的war是否已经拷贝到对应的目录了吧,再次进入容器里面进行查找了。

我们看到我们的hello-war包已经启动了,下面我们开始在我们的浏览器进行项目的访问了。

这里提示一下,tomcat的端口号默认是8080,但是自己将主机的端口10000映射为容器的8080端口上,所以我们在浏览器上访问是10000的端口,不过你们也可以根据自己的喜欢进行设定,需要了解如何设置的可以看下我之前发过的文章。

http://自己tomcat服务器所在的机器ip:10000/hello-war/hello

我们通过上面的地址进行访问,首先解析一下吧,上面的hello-war是我们的项目名称,也就是war包的名称,后面的/hello就是上面我们自定义的controller自定义的url路径。

我们看到上面的图片就是我们在示例程序中定义的信息,说明我们成功了,好了,本次需要分享的文章就到这里结束了,喜欢文章的可以关注,转发,分享一下。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值