springboot启动项目自动运行测试方法

springboot启动项目自动运行测试方法

实现方式

在xxxx包下创建一个类xxxxx.java,该类需要继承ApplicationRunner接口并实现里面的run方法,并将该类通过@Component 注入到spring里,

源码如下:

package com.gitee.taven.test;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/** 
 * @title: RunTest
 * @Description:  多线程测试类
 * @Param:  模拟十个请求并发同时提交
 * @return:  
 * @Author: ZouTao 
 * @Date: 2020/4/14 
 */
@Component
public class RunTest implements ApplicationRunner {

    private static final Logger LOGGER = LoggerFactory.getLogger(RunTest.class);

    @Autowired
    private RestTemplate restTemplate;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("=================执行多线程测试==================");
        String url="http://localhost:8000/submit";
        CountDownLatch countDownLatch = new CountDownLatch(1);
        ExecutorService executorService = Executors.newFixedThreadPool(10);  //线程数

        for(int i=0; i<10; i++){
            String userId = "userId" + i;
            HttpEntity request = buildRequest(userId);
            executorService.submit(() -> {
                try {
                    countDownLatch.await();
                    System.out.println("Thread:"+Thread.currentThread().getName()+", time:"+System.currentTimeMillis());
                    ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
                    System.out.println("Thread:"+Thread.currentThread().getName() + "," + response.getBody());

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            });
        }

        countDownLatch.countDown();
    }
    private HttpEntity buildRequest(String userId) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.set("Authorization", "yourToken");
        Map<String, Object> body = new HashMap<>();
        body.put("userId", userId);
        return new HttpEntity<>(body, headers);
    }
}

运行结果如下所示:

在这里插入图片描述

一个小实用方法类。


参考地址:
SpringBoot/Web项目防止表单/请求重复提交(单机和分布式)

项目初始化执行sql的方式:
https://blog.csdn.net/shirukai/article/details/81021981

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
# system-monitor **基于(siger)开发的SpringBoot项目,java获取服务器信息** 该项目为 Java探针 运行前提是 有Jvm环境,集成了Swagger接口 **场景:** 在没有使用 **分布式**的项目,进行集群管理时,有时候来了做服务器监控的需求 如果没有特殊要求 阿里开源的 ```Arthas``` 是非常好用的java诊断工具 但是 如果要做 监控数据化的话 就需要自己开发了 这里我分享一套 最近刚写的Java探针 运行起来后查看接口 > #API接口文档 > 127.0.0.1:7000/doc.html 使用主服务 去定时抓接口,即可做到,集群下多服务器监控 ``` # 运行 nohup java -jar system-monitor.jar & # 有能力的 可以配置一下 开机启动 ``` ### Windows 需要把 sigar对应的插件 放入 jdk bin 目录下 ### Linux 需要把 对应的 so 文件 放在 java.library.path 下 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
【资源说明】 基于SpringBoot快速开发的爬虫项目源码+项目使用说明+sql数据库.zip 基于SpringBoot快速开发的爬虫项目源码+项目使用说明+sql数据库.zip 基于SpringBoot快速开发的爬虫项目源码+项目使用说明+sql数据库.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 1 项目简介 1.1 功能介绍 基于WebMagic-0.7.3开源框架实现的爬虫项目 基于SpringBoot框架搭建 支持爬取主流新闻网站的新闻数据 支持爬取东方财富网A股所有股票250日行情,数据量达到100万 支持自动更新数据 支持CCTV欧洲杯2020比赛数据爬取 1.2 数据落库位置 新闻数据存储在MongoDB 股票数据存储在MySQL的stock数据库 1.3 目前支持爬取网站: 新闻 腾讯新闻 凤凰资讯 股票 东方财富 个股信息 东方财富 k线信息 东方财富 交易日信息 东方财富 新股信息 竞技赛事 CCTV 欧洲杯2020赛事 2 使用说明 2.1 数据库准备 1. 准备有效MongoDB、MySQL数据库,并配置到resources/application-dev.yml 2. 初始化数据库 mongoDB脚本:doc/mongoDB.sql MySQL脚本:doc/stock.sql 2.2 启动程序 1. 执行 src/test/java/com/aposs/box/spider/domain/stock/StockTest.java 的 runStockInfoSpiderTest 方法,即可爬取A股所有股票清单 2. 从com.aposs.box.spider.BoxSpiderApplication启动项目,即可启动服务定时爬取A股行情 2.3 爬取股票数据说明 2.3.1 初始化 tbl_stock_info 表 开始爬取股票k线数据前,需要确认tbl_stock_info表有数据,因为程序是依赖此表中的股票数据执行爬取任务的; 初始化或更新 tbl_stock_info 表的数据入口为: > com.aposs.box.spider.service.StockSpiderService.runStockInfoSpider 也可以选择执行 doc/tbl_stock_info.sql 脚本初始化 tbl_stock_info 表数据,但是可能漏掉新股 2.3.2 爬取A股所有股票250日行情 以下方法为爬取入口为,传入参数 250 即可开始爬取所有股票250日行情 > com.aposs.box.spider.service.StockSpiderService.runKlineSpider(java.lang.Integer) 2.4 通用爬虫(包括各种赛事、新闻爬取) 1. 初始化爬虫元数据表 tbl_spider_mate_data(数据库脚本:doc/tbl_spider_mate_data.sql) 2. 启动项目即可自动爬取相关数据到mongoDB对应的集合中(集合名称为{spider_name})
# onenet 中国移动ONENET平台测试项目--基于Springboot 一、所需环境 1、jdk 1.8 2、maven 3.0+,构建工具 3、mysql 5.5+,数据库 4、Eclipse 4.0+,IDE工具 5、git 1.7+,代码版本管理工具 二、终端中执行下面命令,转成Eclipse工程,即可导入到Eclipse中 mvn eclipse:eclipse 三、启动 1、eclipse中,直接 run Launch.java 四、访问 系统访问地址:http://localhost:8081/ 接口访问地址:http://localhost:8081/swagger-ui.html 备注:生成环境中不生成 五、目录说明 src/main/java/**/constants:系统常量 src/main/java/**/config:系统配置 src/main/java/**/controller:请求层 src/main/java/**/controller/request:请求层的请求数据 src/main/java/**/controller/response:请求层的响应数据 src/main/java/**/domain:实体 src/main/java/**/domain/repository:访问数据库 src/main/java/**/domain/enums:实体使用的枚举 src/main/java/**/exception:平台定义异常 src/main/java/**/interceptor:拦截器 src/main/java/**/service:服务层,封装各个业务的处理 src/main/java/**/util:工具 src/main/resources/application.yml:系统具体配置项文件 src/main/resources/log.xml:系统日志配置 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
修改application-dev.yml中的数据库配置环境 * 继承通用接口直接使用,或根据业务在基础代码上扩展 * 代码生成:在CodeGenerator的main方法中修改需要生成的表名,运行即可 ## 代码结构 ```bash ├── README.md ├── pom.xml ├── springboot-seedproject.iml ├── src │   ├── main │   │   ├── java │   │   │   └── pers │   │   │   └── hong │   │   │   └── project │ │ │ ├── SpringbootSeedprojectApplication.java 启动 │ │ │ ├── common │ │ │ │ ├── Constants.java 常量 │ │ │ │ ├── Result.java 结果集 │ │ │ │ ├── ResultGenerator.java 响应结果生成工具 │ │ │ │ └── ServiceException.java 业务异常 │ │ │ ├── config │ │ │ │ ├── MybatisConfig.java Mybatis配置 │ │ │ │ └── WebMvcConfig.java MVC配置 │ │ │ ├── core │ │ │ │ ├── AbstractService.java service实现 │ │ │ │ ├── Mapper.java 通用mapper │ │ │ │ └── Service.java 通用service │ │ │ └── generator │ │ │ └── CodeGenerator.java 代码生成器 │ │ └── resources │ │ ├── application-dev.yml 开发环境 │ │ ├── application-pro.yml 生产环境 │ │ ├── application-test.yml 测试环境 │ │ ├── application.yml 配置文件 │ │ ├── banner.txt banner │ │ ├── mapper │ │ └── template ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖一点雨

原创不易,鼓励鼓励~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值