码迷,mamicode.com
首页 > 编程语言 > 详细

Spring boot如何打war包发布到tomcat

时间:2018-04-23 21:16:42      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:spring boot   war   tomcat   

前言: 

平时在使用java做项目开发时,首先想到利用框架来提升开发效率,和提高可维护性。选择spring可以使用ssmspring框架,springMVC,mybatis),而且企业中应用也比较广泛,然而还是发现,在框架中有很多配置,而且看起来相当繁琐,并且在这些配置中,大部分都属于默认配置,习惯配置。因此spring boot就此诞生,它的主要目的就是实现“0”配置,此处的“0”不是代表没有配置,而是代表极少的配置。并且spring boot还内置了tomcat

 

Tomcat是一种web容器,类似于apachenginx等,提供web服务的服务器软件。它属于轻量级,方便启动和配置的web服务器,非常适合用来学习之用。不过有时候也可以作为生产服务器来部署,通过搭建集群提高可用性和高负载性。上面说到spring boot内置了tomcat,就意味着spring boot项目可以自己运行(编写入口类,打为jar包,使用java -jar 包名.jar来运行)但是在有的情况下我们既需要发布软件的灵活性,又想使用spring boot为我们带来的便利,因此我们就需要将spring boot项目当做普通项目一样打成war包发布到tomcat,这正是本章编写的目的。

 

spring boot项目打war包发布的步骤(此处以maven做讲解):

1、构建spring应用(继承SpringBootServletInitializer并重写configure方法)

将入口文件做修改,代码如下:

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

public class WebApplication extends SpringBootServletInitializer {

 

public static void main(String[] args) {

SpringApplication.run(WebApplication.class, args);

}


@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

return builder.sources(WebApplication.class);

}


}

 

2、配置pom.xml文件

A、先将打包类型做设置:

<packaging>jar</packaging>

改为:

<packaging>war</packaging>

    

B、其他配置如下

<!-- 继承spring boot -->

<parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>2.0.1.RELEASE</version>

    <relativePath/> <!-- lookup parent from repository -->

</parent>

 

<!-- 设置属性编码与版本-->

<properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <java.version>1.8</java.version>

</properties>

 

    <!--设置打包时包的名称-->

<build>

    <finalName>ROOT</finalName>   

</build>

 

<!--配置依赖-->

<dependencies>

    <!--java持久化API主要用于和数据库交互-->

    <dependency>

        <groupId>javax.persistence</groupId>

        <artifactId>persistence-api</artifactId>

        <version>1.0</version>

    </dependency>

    <dependency>

        <!-- 移除嵌入式tomcat插件避免与发布后的环境冲突 -->

        <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-jdbc</artifactId>

    </dependency>

    <!-- RabbitMQ -->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-amqp</artifactId>

    </dependency>

    <!--用于提供web服务(servlet容器)-->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

    <!--引入thymeleaf模板引擎-->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-thymeleaf</artifactId>

    </dependency>

    <!--引入测试插件比如Junit-->

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-test</artifactId>

        <scope>test</scope>

    </dependency>

    <dependency>

        <groupId>org.webjars</groupId>

        <artifactId>jquery</artifactId>

        <version>3.3.0</version>

    </dependency>

    <dependency>

        <groupId>org.webjars</groupId>

        <artifactId>bootstrap</artifactId>

        <version>3.3.7</version>

    </dependency>

    <!--引入全文检索-->

    <dependency>

        <groupId>org.springframework.data</groupId>

        <artifactId>spring-data-solr</artifactId>

         <version>2.1.1.RELEASE</version>

    </dependency>


     <!--  httpclient --> 

    <dependency>

          <groupId>org.apache.httpcomponents</groupId> 

         <artifactId>httpclient</artifactId> 

          <version>4.3.5</version> 

    </dependency>

    <!--自动重启或自动关闭缓存等功能于开发很有用-->

     <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-devtools</artifactId>

        <optional>true</optional>

    </dependency>


    <!-- 数据库连接池 -->

    <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

        <version>5.0.8</version>

    </dependency>

    <!--引入阿里巴巴连接池-->

    <dependency>

        <groupId>com.alibaba</groupId>

        <artifactId>druid</artifactId>

        <version>1.1.9</version>

    </dependency>

</dependencies>

 

 

最后使用右键项目:

    Run As > maven clean(清除已打包的其他文件) > maven install(打包)

然后在target目录下便可以看到设置了<finalName>ROOT</finalName>war包,

之后发布即可


Spring boot如何打war包发布到tomcat

标签:spring boot   war   tomcat   

原文地址:http://blog.51cto.com/lxqybyq/2106975

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!