springboot测试、打包、部署
本文使用《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测试、打包、部署的更多相关文章
- Spring Boot(十二):spring boot如何测试打包部署
Spring Boot(十二):spring boot如何测试打包部署 一.开发阶段 1,单元测试 在开发阶段的时候最重要的是单元测试了,springboot对单元测试的支持已经很完善了. (1)在p ...
- Maven创建Web工程并执行构建/测试/打包/部署
创建工程基本参考上一篇Java Application工程,不同的是命令参数变了,创建Web工程的命令如下: mvn archetype:generate -DgroupId=com.jsoft.te ...
- SpringBoot简单打包部署(附工程)
前言 本文主要介绍SpringBoot的一些打包事项和项目部署以及在其中遇到一些问题的解决方案. SpringBoot打包 在SpringBoot打包这块,我们就用之前的一个web项目来进行打包. 首 ...
- springboot(十二):springboot如何测试打包部署
有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...
- springboot如何测试打包部署
有很多网友会时不时的问我,spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发.调试.打包到最后的投产上线. 开发阶段 单元 ...
- (转)Spring Boot(十二):Spring Boot 如何测试打包部署
http://www.ityouknow.com/springboot/2017/05/09/spring-boot-deploy.html 有很多网友会时不时的问我, Spring Boot 项目如 ...
- Spring Boot(十二):Spring Boot 如何测试打包部署
有很多网友会时不时的问我, Spring Boot 项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下 Spring Boot 如何开发.调试.打包到最后的投产上线. 开发阶段 ...
- SpringBoot项目打包部署
部署方式 SpringBoot项目可以通过jar包或者war包部署在服务器上,因为jar包更适合前后端分离的项目,所以这里我们使用jar包的方式. 添加maven支持 <!-- 这个插件,可以将 ...
- springboot项目打包部署在指定的tomcat容器中
1.首先需要修改项目的打包方式,将package改为war <packaging>war</packaging> 2.移除spring boot web中的嵌入式tomcat ...
- Springboot如何打包部署项目
原文地址 目录 前言 1. 导入插件 2.idea中快速打包 3.java –jar运行项目 4.访问项目 5.发布到服务器 前言 用心写好每一篇文章,真心对待每一个读者 文章首发地址: www.ja ...
随机推荐
- 移动web开发之rem的使用
为什么要使用rem 移动端设备尺寸五花八门,单纯使用px这个单位无法轻易适配,rem就可以为我们解决这个问题! 如何使用rem 1rem默认等于16px,这是因为页面的默认字体大小就是16px.r 代 ...
- Git忽略规则.gitignore梳理
对于经常使用Git的朋友来说,.gitignore配置一定不会陌生.废话不说多了,接下来就来说说这个.gitignore的使用. 首先要强调一点,这个文件的完整文件名就是".gitignor ...
- java冒泡排序和快速排序
本ID技术干货公众号"java工会",欢迎关注指正. 一.冒泡排序 1.算法介绍 设排序表长为n,从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1] & ...
- beta冲刺1-咸鱼
前言:这篇算是开始补之前的开端,毕竟beta阶段我们从前面开始就有在陆续做了. 今天的工作: 接收了新成员*1,然后几个人聚了一下,并且讨论了一下目前遇到的问题,以及目前需要处理的问题. 目前遇到的问 ...
- Software Engineering-HW3 264&249
title: Software Engineering-HW3 date: 2017-10-05 10:04:08 tags: HW --- 小组成员 264 李世钰 249 王成科 项目地址 htt ...
- 201621123050 《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1. 常用异常 结合题集题目7-1回答 1.1 自己以前编写的代码中经常出现 ...
- 敏捷冲刺每日报告--day2
1 团队介绍 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(267),蔡凯峰(285) Git链接:https://github.com/WHUSE2017/C-team ...
- NFC驱动调试
1.NFC基本概念: NFC 又称为近场通信,是一种新兴技术,可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别(RFID) 及互连互通技术整合演变而来,通过单一芯片集成感应式读卡器: NFC有 ...
- python虚拟环境搭建大全(转)
Pipenv & 虚拟环境 本教程将引导您完成安装和使用 Python 包. 它将向您展示如何安装和使用必要的工具,并就最佳做法做出强烈推荐.请记住, Python 用于许多不同的目的.准确地 ...
- 看漫画学Flux
原文地址:A cartoon guide to Flux - by Lin Clark Flux在目前web开发中最受欢迎也较不被人理解,本文会以简单易懂的方式解释它. 出现问题 首先,我要声明Flu ...