在springboot項目搭建完成之后,通過Tomcat方式進行部署項目,需進行一下操作
一.DanyuWebApplication入口啟動類改造
添加繼承關系和Override重寫,具體如下:
package com.danyu.web; 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; /** * web容器中進行部署 * * @author danyu */ @SpringBootApplication() public class DanyuWebApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(DanyuWebApplication.class); } public static void main(String[] args) { SpringApplication.run(DanyuWebApplication.class, args); System.out.println("系統啟動成功"); } }
二。resource目錄下添加transaction.xml文件
<!-- 解決讀不到配置文件的問題,將指定的文件打進war包 --> <resources> <resource> <!-- 要打進war包的文件所在的目錄 --> <directory>src/main/resorce</directory> <includes> <include>**.*</include> <include>**/*.*</include> <include>**/*/*.*</include> </includes> <filtering>true</filtering> </resource> </resources>
三.修改子模塊(danyu-web)pom.xml文件
3.1.添加<packaging>war</packaging>,將打包方式改為war
3.2 spring-boot-starter-web忽略內嵌tomcat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--忽略內嵌tomcat,打包部署到tomcat。注*本地運行的時候要把這一段忽略引入個注釋掉,要不然項目啟動不了 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
3.3 添加spring-boot-starter-tomcat
<!-- 這個依賴讓你能夠在程序入口類:xxxAppAplication中直接執行main方法啟動tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- 但是這里一定要設置為provided --> <scope>provided</scope> </dependency>
3.4 依賴其他子模塊的需注意,添加<type>jar</type>
<!-- 通用工具--> <dependency> <groupId>com.zbbz</groupId> <artifactId>zbbzfw-common</artifactId> <version>1.0.1</version> <!-- 該模塊的packaging為war,所以下面兩項必須設置,否則打包會出出錯 --> <type>jar</type> <!-- <classifier>classes</classifier>--> </dependency>
3.5 打包配置
<build> <finalName>danyu</finalName> <plugins> <!-- war包插件 --> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <!-- 把class打包jar作為附件 --> <attachClasses>true</attachClasses> </configuration> </plugin> <!-- 指定啟動入口 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.danyu.web.DanyuWebApplication</mainClass> </configuration> </plugin> </plugins> </build>
整個pom.xml完整配置如下:
<?xml version="1.0" encoding="UTF-8"?> <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"> <parent> <artifactId>danyu</artifactId> <groupId>com.danyu</groupId> <version>0.0.1</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>danyu-web</artifactId> <description>控制模塊</description> <packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--忽略內嵌tomcat,打包部署到tomcat。注*本地運行的時候要把這一段忽略引入個注釋掉,要不然項目啟動不了 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 這個依賴讓你能夠在程序入口類:xxxAppAplication中直接執行main方法啟動tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- 但是這里一定要設置為provided --> <scope>provided</scope> </dependency> <!-- 通用工具--> <dependency> <groupId>com.zbbz</groupId> <artifactId>zbbzfw-common</artifactId> <version>1.0.1</version> <!-- 該模塊的packaging為war,所以下面兩項必須設置,否則打包會出出錯 --> <type>jar</type> <!-- <classifier>classes</classifier>--> </dependency> </dependencies> <build> <finalName>danyu</finalName> <plugins> <!-- war包插件 --> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <!-- 把class打包jar作為附件 --> <attachClasses>true</attachClasses> </configuration> </plugin> <!-- 指定啟動入口 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.danyu.web.DanyuWebApplication</mainClass> </configuration> </plugin> </plugins> </build> </project>