Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >springboot测试、打包、部署

springboot测试、打包、部署

作者头像
名山丶深处
发布于 2022-05-10 06:38:44
发布于 2022-05-10 06:38:44
1.8K00
代码可运行
举报
文章被收录于专栏:名山丶深处名山丶深处
运行总次数:0
代码可运行

本文使用《springboot集成mybatis(一)》项目,依次介绍springboot测试、打包、部署。

大多数朋友是做后端的,也就是为其他系统或者前端UI提供Rest API服务。

那么Rest API怎么测试?

1)通过前端页面或者直接组装URL,然后使用浏览器提交表单。

2)通过专业的API测试软件、工具。如:postman,Jmeter等。

3)通过开发语言编写测试脚本,模拟Http请求。如:HttpURLConnection、HttpClient等。

4)通过单元测试工具(Junit、JTest等)。

1、springboot单元测试

在《springboot集成mybatis(一)》项目中,我们已经通过Junit编写了Dao层的测试案例。

Web层咱们需要借助于MockMvc来模拟Http请求测试。

提示:若只想测试某一个方法,请选中方法名再执行(Junit默认执行所有Test案例)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderControllerTests {
    @Autowired
    private WebApplicationContext context;
    private MockMvc mvc;
    
    @Before
    public void init() throws Exception {
        //MockMvc注入spring容器,否则controller中注入的service、mapper均会报空指针
        mvc = MockMvcBuilders.webAppContextSetup(context).build();
    }
    
    //测试OrderController.add()方法
    @Test
    public void add() throws Exception {
        //模拟请求参数
        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        params.add("orderNo", String.valueOf(System.currentTimeMillis()));
        params.add("orderName", "订单名称");
        params.add("amount", "100");
        
        //通过MockMvc模拟post表单提交
        mvc.perform(post("/order/add").accept(MediaType.APPLICATION_JSON).params(params))
                .andExpect(status().isOk())
                .andDo(print())
                .andReturn();
    }
    
    //测试OrderController.queryAll()方法
    @Test
    public void queryAll() throws Exception {
        //通过MockMvc模拟post表单提交
        mvc.perform(post("/order/queryAll").accept(MediaType.APPLICATION_JSON))
        .andExpect(status().isOk())
        .andDo(print())
        .andReturn();
    }
}

2、springboot打包(maven)

2.1)Eclipse打包

选中项目点击鼠标右键 -> Run As -> Maven install

2.2)maven控制台打包(《windows平台安装maven》)

切换至项目pom.xml目录,执行命令:mvn install

2.3)通过Maven install插件打包时,Maven默认会执行所有Test案例。

如何跳过(不执行)测试案例?

在pom.xml配置文件中增加属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<properties>
  <skipTests>true</skipTests>
</properties>

或者执行命令时增加skip参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mvn install -Dmaven.test.skip=true

2.4)指定Maven打包类型

修改pom.xml配置文件中packaging属性。

2.4.1)构建jar包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<packaging>jar</packaging>

2.4.2)构建war包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<packaging>war</packaging>

2.4.3)构建war时,我们排除tomcat相关jar包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

3.springboot部署

3.1)部署jar包

通过java -jar启动(该方式启动后,停止服务比较麻烦)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup java -jar spring-boot-mybatis-0.0.1-SNAPSHOT.jar &

改进,将当前jar注册为服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ln -s /部署目录/spring-boot-mybatis-0.0.1-SNAPSHOT.jar /etc/init.d/springbootmybatis

启动服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
service springbootmybatis start

3.2)部署war包

将构建好的war包放入tomcat/webapps目录下,并启动tomcat服务

3.3)如何重启?

3.3.1)tomcat部署的,进入tomcat安装目录/bin目录:

停止服务:./shutdown.sh

启动服务:./start.sh

3.3.2)jar包独立部署的:

停止服务:service springbootmybatis stop

启动服务:service springbootmybatis start

源代码:https://gitee.com/skychenjiajun/spring-boot

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringMvc 之MockMvc帮我们解决了什么问题
对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如启动速度慢,测试验证不方便,依赖网络环境等,导致测试无法进行,为了尽可能的对Controller进行快速测试,通过引入MockMVC进行解决。
louiezhou001
2020/04/07
1.3K0
springboot(十二):springboot如何测试打包部署
有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试、打包到最后的投产上线。 开发阶段 单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了。 1、在pom包中添加spring-boot-starter-test包引用 <dependency> <groupId>org.springframework.boot</groupId> <arti
纯洁的微笑
2018/04/19
1.9K0
springboot(一):入门篇
什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。 使用spring boot有什么好处 其实就是简单、快速、方便!平时如果我们需要搭建一
纯洁的微笑
2018/04/18
6950
springboot(一):入门篇
SpringBoot ( 十二 ) :SpringBoot 如何测试打包部署
有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试、打包到最后的投产上线。
前朝楚水
2018/07/26
1K0
SpringBoot (一) :入门篇
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。
前朝楚水
2018/07/26
4270
SpringBoot (一) :入门篇
Spring Boot 如何测试打包部署
这篇文章就来介绍一下 Spring Boot 如何开发、调试、打包到最后的投产上线。
闻说社
2025/01/07
1090
Spring Boot 如何测试打包部署
SpringBoot(一)走进Springboot的世界
什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。 使用spring boot有什么好处 其实就是简单、快速、方便!平时如果我们需要搭建一
用户1195962
2018/03/28
8580
SpringBoot(一)走进Springboot的世界
SpringBoot基础之MockMvc单元测试
SpringBoot创建的Maven项目中,会默认添加spring-boot-starter-test依赖。在《5分钟快速上手SpringBoot》中编写的单元测试使用了MockMvc。本篇文章就围绕MockMvc在SpringBoot中的使用进行讲解。
程序新视界
2019/05/26
11.9K0
springboot框架的理解_谈谈你对springmvc的理解
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
全栈程序员站长
2022/09/23
6400
springboot框架的理解_谈谈你对springmvc的理解
Spring Boot:快速入门教程
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简而言之,Spring Boot通过提供默认配置的方式整合了所有的框架,让我们可以更加简单、快速、方便地构建应用程序。
朝雨忆轻尘
2019/06/19
7090
Spring Boot:快速入门教程
SpringBoot入门系列(三十)Spring Boot项目打包、发布与部署
Spring Boot使用了内嵌容器,因此它的部署方式也变得非常简单灵活,一方面可以将Spring Boot项目打包成独立的jar或者war包来运行,也可以单独打包成war包部署到Tomcat容器中运行,如果涉及到大规模的部署Jinkins成为最佳选择之一。
章为忠学架构
2021/08/18
28.3K0
SpringBoot项目打成war和jar的区别「建议收藏」
1.我的一个springboot项目,用mvn install打包成jar,换一台有jdk的机器就直接可以用java -jar 项目名.jar的方式运行,没任何问题,为什么这里不需要tomcat也可以运行了? 2.然后我打包成war放进tomcat运行,发现端口号变成tomcat默认的8080(我在server.port中设置端口8090)项目名称也必须加上了。 也就是说我在原来的机器的IDEA中运行,项目接口地址为 ip:8090/listall,打包放进另一台机器的tomcat就变成了ip:8080/项目名/listall。这又是为什么呢?
全栈程序员站长
2022/08/25
2.6K0
SpringBoot项目打成war和jar的区别「建议收藏」
框架 | SpringBoot项目创建和发布部署步骤
如何创建Spring Boot项目? 1 技术选型 JDK1.7、MYSQL57、Spring Boot、Logback、Mybatis 2 开发工具 Myeclipse、Maven、Linux 3 数据库设计 表名:userinfo 结构如下: CREATE TABLE `userinfo` ( `id` int(20) NOT NULL AUTO_INCREMENT, `username` varchar(20) DEFAULT NULL, `password` varchar(20) D
码神联盟
2018/06/04
5.2K2
框架 | SpringBoot项目发布部署外部tomcat服务器步骤
如何发布Sping Boot项目? 新建好SpringBoot项目之后,SIT测试如果没问题,则下一步肯定要进行UAT测试。 那么如何将SpringBoot项目进行发布部署,这和我们之前的普通web项目不太一样,之前的项目直接部署到tomcat的webapps中,然后启动tomcat即可访问。 但是SpringBoot项目内嵌tomcat,这如何发布部署访问呢? 目前比较常用的方式有三种:发布JAR包、发布WAR包、部署到自动化容器中,以下具体讲解发布部署过程。 1 技术选型 JDK1.7、MYSQL57、
码神联盟
2018/06/04
3.1K0
SpringBoot2.0 基础案例(17):自定义启动页,项目打包和指定运行环境
springboot的打包方式有很多种。可以打war包,可以打jar包,可以使用jekins进行打包部署的。不推荐用war包,SpringBoot适合前后端分离,打成jar进行部署更加方便快捷。
知了一笑
2019/07/19
6630
Spring Boot项目打包部署,打Jar包和War包有什么区别?
部署 Spring Boot 项目可以采用多种方式,下面是常用的几种部署方式,同学们可以简单做一个了解。
Designer 小郑
2024/01/25
2.9K0
Spring Boot项目打包部署,打Jar包和War包有什么区别?
SpringBoot是什么?
springboot是spring开源组织下的子项目,是spring组件一站式解决方案,主要是简化了使用spring的难度,节省了繁重的配置,提供了各种启动器,开发者能快速上手。
全栈程序员站长
2022/09/24
9740
SpringBoot是什么?
5分钟快速上手Spring Boot
与一些动态语言(如Ruby、Groovy、Node.js)相比,Java开发显得异常笨重。接触过外包项目的朋友也有所了解,如果要开发一个小型项目,首选的编程语言并不是Java,而是PHP。为什么呢?因为开发起来快!目前很多大型互联网公司的早起编程语言都是类似PHP这种能够快速开发的语言。 既然问题出现了,那必然有解决问题的方案,SpringBoot做到了。SpringBoot是由Pivotal公司所属团队研发,该公司的企业宗旨为:
程序新视界
2019/05/29
8700
5分钟快速上手Spring Boot
一线开发大牛带你初步了解如何使用SpringBoot搭建框架
本文以实战为导向,讲解了如何使用Spring Cloud开发微服务项目,而Spring Cloud基于SpringBoot,所以本篇先来初步了解如何使用Spring Boot搭建框架。
愿天堂没有BUG
2022/10/28
7280
一线开发大牛带你初步了解如何使用SpringBoot搭建框架
SpringBoot-打包&部署
SpringBoot 项目支持两种打包方式,一种是 WAR 包,然后在 Tomcat 上部署运行,一种是 JAR 包,内置了 Tomcat,可以直接运行。
每周聚焦
2025/02/11
2720
SpringBoot-打包&部署
相关推荐
SpringMvc 之MockMvc帮我们解决了什么问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验