关键词:
前言
关于SpringBoot使用jsp模板打包成jar的方式运行在文章SpringBoot.08.SpringBoot文件上传与下载中我们简单的提到过一次,这里我们来详细记录一下过程和注意事项
实现步骤
这里我们就以文章SpringBoot.12.SpringBoot中的拦截器中的Module为例进行打包测试
1.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.0</version>
<relativePath/>
</parent>
<groupId>com.christy</groupId>
<artifactId>springboot-08-interceptor</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-08-interceptor</name>
<description>Demo project for Spring Boot</description>
<!-- 指定打包方式为jar(默认) -->
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- spring-boot-starter-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
<!-- mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<!-- mybatis-spring-boot-starter
由于springboot整合mybatis版本中默认依赖mybatis 因此不需要额外引入mybati版本,否则会出现冲突
-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- 每次新建的项目如果需要开启热部署都需要引入该依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- c标签库 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 让内嵌tomcat具有解析jsp功能 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- 文件上传相关 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
<exclusions>
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 一定要注意mvn的插件一定是1.4.2.RELEASE,否则jsp访问不到 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
</plugins>
<resources>
<!-- 打包时将jsp文件拷贝到META-INF目录下-->
<resource>
<!-- 指定resources插件处理哪个目录下的资源文件 -->
<directory>src/main/webapp</directory>
<!-- 注意必须要放在此目录下才能被访问到 -->
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
<build> <plugins> <!-- 一定要注意mvn的插件一定是1.4.2.RELEASE,否则jsp访问不到,如下图所示 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.4.2.RELEASE</version> </plugin> </plugins> <resources> <!-- 打包时将jsp文件拷贝到META-INF目录下--> <resource> <!-- 指定resources插件处理哪个目录下的资源文件 --> <directory>src/main/webapp</directory> <!-- 注意必须要放在此目录下才能被访问到 --> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
2.打包
我们点击IDEA的右侧边栏的Maven
标签,依次点击springboot-08-interceptor
下面的Lifecycle
下的clear
和package
命令。如下图所示:
package
命令执行完毕后,我们能够在项目下面的target
包下面看到我们生成的jar包。如下图所示:
3.上传至服务器
打开我们Linux服务器Christy(BaseOS)
,ip地址为192.168.8.100
。如下图所示:
执行cd命令进入到/usr/apps
目录下,执行rz
命令,选择刚才生成的jar进行上传。如下图所示:
4.运行
执行命令java -jar springboot-08-interceptor-0.0.1-SNAPSHOT.jar nohup &
可以后台运行该程序,如下图所示:
此时我们执行命令Ctrl+C
,该程序会切换到后台运行,我们执行jps
命令会发现该进程依然存在,如下图所示:
5.测试
我们浏览器访问http://192.168.8.100:8808/interceptor.jsp
页面可以正常访问。如下图所示:
当我们浏览器访问http://192.168.8.100:8808/interceptor/sayHello
时控制台会输出以下内容:
当有请求访问该程序时程序自动转换到前台运行,非常方便。
springboot.14.springboot使用jsp模板打包成jar(代码片段)
SpringBoot.14.SpringBoot使用jsp模板打包成jar前言实现步骤1.pom.xml2.打包3.上传至服务器4.运行5.测试前言关于SpringBoot使用jsp模板打包成jar的方式运行在文章SpringBoot.08.SpringBoot文件上传与下载中我们简单的提到过一次,这里我们来详... 查看详情
springboot.14.springboot使用jsp模板打包成jar(代码片段)
SpringBoot.14.SpringBoot使用jsp模板打包成jar前言实现步骤1.pom.xml2.打包3.上传至服务器4.运行5.测试前言关于SpringBoot使用jsp模板打包成jar的方式运行在文章SpringBoot.08.SpringBoot文件上传与下载中我们简单的提到过一次,这里我们来详... 查看详情
springboot.14.springboot使用jsp模板打包成jar(代码片段)
SpringBoot.14.SpringBoot使用jsp模板打包成jar前言实现步骤1.pom.xml2.打包3.上传至服务器4.运行5.测试前言关于SpringBoot使用jsp模板打包成jar的方式运行在文章SpringBoot.08.SpringBoot文件上传与下载中我们简单的提到过一次,这里我们来详... 查看详情
springboot3.0.0m32.7.0发布,2.5.x将停止维护
昨晚(5月19日),SpringBoot官方发布了一系列SpringBoot的版本更新,其中包括:SpringBoot3.0.0-M3SpringBoot2.7.0SpringBoot2.6.8SpringBoot2.5.14SpringBoot3.0.0-M3此版本包括74个bug修复、文档改进和依赖项升级,其中 查看详情
springboot3.0.0m32.7.0发布,2.5.x将停止维护(代码片段)
昨晚(5月19日),SpringBoot官方发布了一系列SpringBoot的版本更新,其中包括:SpringBoot3.0.0-M3SpringBoot2.7.0SpringBoot2.6.8SpringBoot2.5.14SpringBoot3.0.0-M3此版本包括74个bug修复、文档改进和依赖项升级,其中 查看详情
springboot3.0.0m32.7.0发布,2.5.x将停止维护(代码片段)
昨晚(5月19日),SpringBoot官方发布了一系列SpringBoot的版本更新,其中包括:SpringBoot3.0.0-M3SpringBoot2.7.0SpringBoot2.6.8SpringBoot2.5.14SpringBoot3.0.0-M3此版本包括74个bug修复、文档改进和依赖项升级,其中 查看详情
springboot3.0.0m32.7.0发布,2.5.x将停止维护(代码片段)
昨晚(5月19日),SpringBoot官方发布了一系列SpringBoot的版本更新,其中包括:SpringBoot3.0.0-M3SpringBoot2.7.0SpringBoot2.6.8SpringBoot2.5.14SpringBoot3.0.0-M3此版本包括74个bug修复、文档改进和依赖项升级,其中值得注意的... 查看详情
使引导容器大小变大会使页面无响应
】使引导容器大小变大会使页面无响应【英文标题】:makingthebootstrapcontainersizebiggermakesthepageunresponsive【发布时间】:2021-11-1021:23:20【问题描述】:我需要使引导程序的容器大小更大。我放这个样式表是为了让容器变大:@media(min-... 查看详情
如何使 RelativeLayout 半透明但不使活动
】如何使RelativeLayout半透明但不使活动【英文标题】:HowtomakeaRelativeLayoutsemi-transparentbutnottheactivity【发布时间】:2014-09-0205:55:40【问题描述】:我想在一个RelativeLayout半透明的一侧制作一个RelativeLayout。它是页脚的项目。它总是可... 查看详情
使 malloc() 返回 NULL 而不是使程序崩溃?
】使malloc()返回NULL而不是使程序崩溃?【英文标题】:Makemalloc()returnNULLinsteadofcrashingtheprogram?【发布时间】:2011-03-3121:40:51【问题描述】:我正在使用malloc在C程序中分配内存。我的程序分配的内存可能超出系统的空间,此时程序... 查看详情
java示例代码_使向量同步,使两个线程中只有一个线程可以访问它
java示例代码_使向量同步,使两个线程中只有一个线程可以访问它 查看详情
使子目录失败使不停止构建
】使子目录失败使不停止构建【英文标题】:Makefailureinsubdirectorymakenotstoppingbuild【发布时间】:2010-03-1715:07:27【问题描述】:我有一个设置,其中make会遍历一堆子目录并在这些目录中进行制作。我希望它立即停止构建失败。下... 查看详情
如何使图像自动调整大小,使宽度为 100% 并相应调整高度?
】如何使图像自动调整大小,使宽度为100%并相应调整高度?【英文标题】:HowcanImakeanimageauto-resizesothewidthis100%andtheheightadjustedaccordingly?【发布时间】:2017-07-1820:26:14【问题描述】:我有以下简单的XAML页面:<?xmlversion="1.0"encoding... 查看详情
如何使背景图像更暗,而不会使同一 div 中的其他图像“变暗”? [复制]
】如何使背景图像更暗,而不会使同一div中的其他图像“变暗”?[复制]【英文标题】:Howtomakethebackground-imagedarker,without"Darking"otherimagesinthesamediv?[duplicate]【发布时间】:2019-09-1320:48:55【问题描述】:我正在创建一个标题... 查看详情
Matlab - 如何使图形成为当前的?如何使轴电流?
】Matlab-如何使图形成为当前的?如何使轴电流?【英文标题】:Matlab-Howtomakeafigurecurrent?Howtomakeanaxescurrent?【发布时间】:2012-09-2808:00:13【问题描述】:如果f是图形句柄,我想在其上使用plot3(..),就像我使用plot(..)一样,但这不... 查看详情
swift 使 UIImageView 和 UIView 像一层一样使它们一起动画
】swift使UIImageView和UIView像一层一样使它们一起动画【英文标题】:swiftMakeUIImageViewandUIViewlikeonelayertomakethemanimatetogether【发布时间】:2019-11-1909:38:53【问题描述】:我有一个包含许多层的集合视图单元,希望它们像一层一样相互... 查看详情
使占位符加载响应
】使占位符加载响应【英文标题】:Makeplaceholderloadingresponsive【发布时间】:2020-07-0802:51:03【问题描述】:我正在使用create-content-loader包来创建占位符加载,但无法使其响应。如何使svg填充父内容。我不想设置宽度硬编码1060px。... 查看详情
是啥使某物成为“特征对象”?
】是啥使某物成为“特征对象”?【英文标题】:Whatmakessomethinga"traitobject"?是什么使某物成为“特征对象”?【发布时间】:2015-02-1811:53:58【问题描述】:最近的Rust更改使“特征对象”对我来说更加突出,但我对究竟是... 查看详情