SpringBoot2.X在Docker中的部署(二)——SpringBoot2.X项目创建
1.前言
在文章前叮嘱一些特别事项,帮助各位读者排坑。
第一,请大家按照顺序阅读本系列的文章,因为笔者会在前一篇文章中埋下一些伏笔,笔者会在本系列的文章前言中注明现有文章顺序。
第二,当前文章默认各位读者具备SpringBoot2.X使用经验,若无相关经验,请先移步Spring官网进行QuickStart操作实现光速入门。
2.相关文章
SpringBoot2.X在Docker中的部署(一)——Docker入门
SpringBoot2.X在Docker中的部署(二)——SpringBoot2.X项目创建
SpringBoot2.X在Docker中的部署(三)——SpringBoot项目在Tomcat镜像中的部署
3.开发环境
老规矩,先上我使用的环境
软件 | 版本 |
---|---|
Mac | 10.15.3 |
IDEA | 2019.03 |
Maven | 3.6.1 |
SpringBoot | 2.1.13 |
JDK | 1.8 |
注:重要的事情说三遍,JDK版本是1.8,JDK版本是1.8,JDK版本是1.8!!!
因为这关乎到后面是否可以成功部署!!!
4.项目创建
4.1 创建Demo工程
4.2 修改Pom.xml
向Pom.xml文件中分别添加以下依赖
<!--这个是为了指定java版本-->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--移除内置的tomcat,否则可能会出现jar包冲突-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加servlet-api-->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<!--指定编译出来的war包的名称-->
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
注:这里一定要注意,要加上<finalName>项目名</finalName>
,因为后续的访问需要带上包名进行访问,否则会报404
4.3 增加ServletInitializer类
增加该类的目的是为了解析web.xml。该类的代码如下图所示:
package com.athena;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//这里的DemoApplication是主启动类名
return application.sources(DemoApplication.class);
}
}
注:这个类需要和主启动类在同一个目录下
项目目录结构如下:
4.4 增加访问控制类
在controller中增加一个DemoController以便于我们进行测试。测试类代码如下:
package com.athena.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoController {
@RequestMapping("/test")
public String testDemo() {
return "Welcome to Tomcat!!";
}
}
至此,我们用来部署的Demo工程创建完毕,下篇文章笔者将会带领大家将此工程部署至docker容器中。