本文使用《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案例)。

@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配置文件中增加属性:

<properties>
  <skipTests>true</skipTests>
</properties>

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

mvn install -Dmaven.test.skip=true

2.4)指定Maven打包类型

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

2.4.1)构建jar包:

<packaging>jar</packaging>

2.4.2)构建war包:

<packaging>war</packaging>

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

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

3.springboot部署

3.1)部署jar包

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

nohup java -jar spring-boot-mybatis-0.0.1-SNAPSHOT.jar &

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

ln -s /部署目录/spring-boot-mybatis-0.0.1-SNAPSHOT.jar /etc/init.d/springbootmybatis

启动服务

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

springboot测试、打包、部署的更多相关文章

  1. Spring Boot(十二):spring boot如何测试打包部署

    Spring Boot(十二):spring boot如何测试打包部署 一.开发阶段 1,单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了. (1)在p ...

  2. Maven创建Web工程并执行构建/测试/打包/部署

    创建工程基本参考上一篇Java Application工程,不同的是命令参数变了,创建Web工程的命令如下: mvn archetype:generate -DgroupId=com.jsoft.te ...

  3. SpringBoot简单打包部署(附工程)

    前言 本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案. SpringBoot打包 在SpringBoot打包这块,我们就用之前的一个web项目来进行打包. 首 ...

  4. springboot(十二):springboot如何测试打包部署

    有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...

  5. springboot如何测试打包部署

    有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...

  6. (转)Spring Boot(十二):Spring Boot 如何测试打包部署

    http://www.ityouknow.com/springboot/2017/05/09/spring-boot-deploy.html 有很多网友会时不时的问我, Spring Boot 项目如 ...

  7. Spring Boot(十二):Spring Boot 如何测试打包部署

    有很多网友会时不时的问我, Spring Boot 项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下 Spring Boot 如何开发.调试.打包到最后的投产上线. 开发阶段 ...

  8. SpringBoot项目打包部署

    部署方式 SpringBoot项目可以通过jar包或者war包部署在服务器上,因为jar包更适合前后端分离的项目,所以这里我们使用jar包的方式. 添加maven支持 <!-- 这个插件,可以将 ...

  9. springboot项目打包部署在指定的tomcat容器中

    1.首先需要修改项目的打包方式,将package改为war <packaging>war</packaging> 2.移除spring boot web中的嵌入式tomcat ...

  10. Springboot如何打包部署项目

    原文地址 目录 前言 1. 导入插件 2.idea中快速打包 3.java –jar运行项目 4.访问项目 5.发布到服务器 前言 用心写好每一篇文章,真心对待每一个读者 文章首发地址: www.ja ...

随机推荐

  1. [css 揭秘]:CSS编码技巧

    CSS编码技巧 我的github地址:https://github.com/FannieGirl/ifannie 喜欢的给我一个星吧 尽量减少代码重复 尽量减少改动时需要编辑的地方 当某些值相互依赖时 ...

  2. 2018.3.29 div内容格式设置

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  3. UWP 使用Windows.Media.FaceAnalysis.FaceDetector检测人脸

    话说现在检测人脸的技术有很多.有在线AI服务,比如Megvii Face++,Microsoft Cognitive Services,Tencent AI等等.还有本地的库实现的,比如OpenCV. ...

  4. Beta No.3

    今天遇到的困难: 组员对github极度的不适应 github的版本控制和协同化编程确实操作起来需要一定的熟练度,我们缺乏这种熟练度 Android Studio版本不一致项目难以打开的问题仍然无法解 ...

  5. 20155306 2006-2007-2 《Java程序设计》第3周学习总结

    20155306 2006-2007-2 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 4.1 类与对象 定义类 1.先在程序中定义类: Clothes{ Str ...

  6. selenium webdriver API

    元素定位 #coding=utf-8 from selenium import webdriver from selenium.webdriver.firefox.firefox_binary imp ...

  7. 2017-2018-1 我爱学Java 第三周 作业

    Team Presentation 团队展示 队员学号 队名 团队项目描述 队员风采 团队首次合照 团队的特色描述 团队初步合作 前两周合作过程中的优缺点 如何改进 团队选题 确立,建立和初步熟悉团队 ...

  8. 201621123043 《Java程序设计》第3周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1 写出你 ...

  9. 一个轻量级iOS安全框架:SSKeyChain

    摘要 SSKeyChains对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码.账户进行访问,包括读取.删除和设置.SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsof ...

  10. js 时间戳 vue 时间戳的转换 ?

    在没有用vue做项目之前 也遇到过戳转换的问题 直接函数 调用 方法 这个也可以写成vue的  把function去掉  formatDate后面加冒号 就可以了 当然这个不是原创 但是是谁的我忘记了 ...