精华内容
下载资源
问答
  • 使用java构建一个挡板程序-1-总章

    千次阅读 2020-08-29 23:05:15
    为什么我们需要挡板程序? 在应用开发过程中难免会有发送短信验证码、调用人脸识别、压力测试等需要调用外部接口的情况。大多数外部接口都会有调用限制或者需要收费等。如果我们需要进行压力测试、目的接口实际未...

    为什么我们需要挡板程序?

    在应用开发过程中难免会有发送短信验证码、调用人脸识别、压力测试等需要调用外部接口的情况。大多数外部接口都会有调用限制或者需要收费等。如果我们需要进行压力测试、目的接口实际未完成开发或者对方不支持在当前开发环境测试就会有诸多不便。

    因此一个挡板应该满足如下要求:

    1. 接入简单、灵活
    2. 挡板高性能、高可用,能横向扩展
    3. 部署简单,支持热部署
    4. 能够实现简单的业务逻辑
    5. 响应可控、可灵活切换。或特定情况响应特定内容。

    实现方式

    依赖组件列表:

    • spring-boot-starter-web : 构建Web服务端。
    • beetl[http://ibeetl.com]: 灵活构建响应报文,并支持简单业务逻辑,热更新且性能高。
    • mongoDb: 存储挡板配置信息。
    • spring-boot-starter-actuator: 监控,配合其他应用系统做链路追踪。【可选】
    • spring-cloud-starter-alibaba-nacos-discovery: 注册中心、配置中心【可选,提供微服务用】
    • ognl:用于动态获取请求数据。

    功能块

    百分比控制响应

    按字段控制响应

    MongoDb与Beetl集成

     

    源码位置:https://gitee.com/crazyAsm/Tailgate

    展开全文
  • Java挡板接小球游戏

    2021-03-08 07:05:20
    版权声明:© 2018 chashu All Rights Reserved.https://blog.csdn.net/tongshuyang/article/details/83054905虽然在学校Java学了很久了,但是什么也没学到,最近实习,老师在...建立一个Java项目,创建一个包,新建...

    版权声明:© 2018 chashu All Rights Reserved.https://blog.csdn.net/tongshuyang/article/details/83054905

    虽然在学校Java学了很久了,但是什么也没学到,最近实习,老师在课堂授课时用这个小游戏来讲解Java中的基础知识,在这里拿出来作为学习过程的记录,希望以后能够每天进步。

    建立一个Java项目,创建一个包,新建一个Java类BallFrame

    BallFrame类代码如下:

    package screen;

    import java.awt.Color;

    import java.awt.Font;

    import java.awt.Graphics;

    import java.awt.event.MouseEvent;

    import java.awt.event.MouseListener;

    import java.awt.event.MouseMotionListener;

    import javax.swing.JFrame;

    import javax.swing.JOptionPane;

    import javax.swing.JPanel;

    public class BallFrame {

    public static void main(String[] args) {

    JFrame f = new JFrame();

    BallPanel b=new BallPanel();

    f.add(b);

    f.setTitle("PlayBall");

    f.setSize( 1000, 800);

    f.setLocationRelativeTo(null);

    f.setDefaultCloseOperation(3);

    f.setVisible(true);

    f.addMouseMotionListener(b);

    f.addMouseListener(b);

    b.move();

    }

    }

    class BallPanel extends JPanel implements MouseMotionListener,MouseListener{

    int px=300,bx=600,by=150;

    int dir=(int)(Math.random()*4+1);

    int sc=0,sleep=15;

    int state = START;

    public static final int START = 1;

    public static final int RUNNING = 2;

    public static final int PAUSE = 3;

    public static final int OVER = 4;

    public static final int RESTART = 5;

    Color c;

    @Override

    public void paint(Graphics g) {

    String score="分数:"+String.valueOf(sc);

    super.paint(g);

    g.setColor(c);

    g.fillOval(bx, by, 100, 100);

    g.setColor(Color.black);

    g.fillRect( px, 700, 200, 10);

    g.drawRoundRect(0, 0, 100, 30, 5, 5);

    g.setFont(new Font("TimesRoman",Font.BOLD,24));

    g.drawString(score, 10, 20);

    if(state==START){

    g.setColor(Color.blue);

    g.drawString("点击屏幕开始游戏", 300, 200);

    }

    if(state==PAUSE){

    g.setColor(Color.orange);

    g.drawString("游戏已经暂停", 300, 200);

    }

    if(state==OVER){

    g.setColor(Color.RED);

    g.drawString("游戏结束,点击屏幕开始新游戏", 250, 200);

    }

    }

    public void move(){

    new Thread(){

    public void run() {

    super.run();

    while(true){

    if(state==RUNNING){

    switch (dir) {

    case 1:{

    bx+=10;

    by+=10;

    break;

    }case 2:{

    bx-=10;

    by+=10;

    break;

    }case 3:{

    bx-=10;

    by-=10;

    break;

    }case 4:{

    bx+=10;

    by-=10;

    break;

    }default:

    break;

    }

    //边界值

    if(bx>900){

    if(dir==1){dir=2;}

    if(dir==4){dir=3;}

    }

    if(bx<0){

    if(dir==2){dir=1;}

    if(dir==3){dir=4;}

    }

    if(by>600){

    if(px-100

    这里用到了上一个屏保程序的部分代码,使小球移动,撞击后变色。

    游戏虽然简单,却写的艰难,可以看到自己还有很大差距,接下来继续努力!

    欢迎访问我的网站:学长帮

    展开全文
  • 挡板游戏 java

    2013-01-10 15:25:27
    挡板游戏的一个小程序,用的是java语言,可以初学者分享一下
  • 计算响应下标方法 总体思路:传入 N个int值,计算其和。获取一个int随机数,并判断当前随机值是否在该下标中。 例如传入: 1,5,9则 sum=15。随机【0-15】假设得到8则: if(8<大于1) 返回 下标0 ,if(8<...

    计算响应下标方法

    总体思路:传入 N个int值,计算其和。获取一个int随机数,并判断当前随机值是否在该下标中。

    例如传入: 1,5,9则 sum=15。随机【0-15】假设得到8则:

      if(8<大于1) 返回 下标0 ,if(8<1+5) 返回1,if(8<1+5+9)则返回2,明显最终返回下标是2。

      同理:0-1:返回 0;2-6 返回1;7-15 返回2;

    方法如下:

    /**
       * @param weight 权重 , 总和不能超过int.max且大于0
       * @return 对应下标
       */
      public static int weightIndex(Integer... weight) {
        int weightSum = 0;
        for (int weightValue : weight) {
          weightSum += weightValue;
        }
        int randomNum = random.nextInt(weightSum);
        double stepWeightSum = 0;
        for (int i = 0; i < weight.length; i++) {
          stepWeightSum += weight[i];
          if (randomNum < stepWeightSum) {
            return i;
          }
        }
        return -1;
      }

    根据得到的下标,获取下标对应的模板名,根据模板名再返回指定响应报文即可。 

     

    源码位置:https://gitee.com/crazyAsm/Tailgate

    展开全文
  • 实现方式 存在URL配置 不存在URL配置 请求 WebFilter 获取Url对应的ApiId 挡板服务 响应 执行Filter 服务 package cn.twh.wall.filter; import cn.twh.wall.config.WallConfig; import ...

    实现方式

    存在URL配置
    不存在URL配置
    请求
    WebFilter
    获取Url对应的ApiId
    挡板服务
    响应
    执行Filter
    服务
    package cn.twh.wall.filter;
    
    import cn.twh.wall.config.WallConfig;
    import cn.twh.wall.service.JsonWallService;
    import com.alibaba.fastjson.JSONObject;
    import com.google.common.base.Charsets;
    import org.apache.commons.lang.StringUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import javax.servlet.*;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.HttpServletRequest;
    import java.io.IOException;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.Map;
    
    @WebFilter
    @Component
    public class UrlToApiFilter implements Filter {
      public static final String API = "api";
      @Autowired
      WallConfig wallConfig;
    
      @Autowired
      private JsonWallService wallService;
    
      @Override
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        Map<String, String> uriToApi = wallConfig.getUriToApi();
        String api = req.getParameter(API);
        if (StringUtils.isBlank(api)) {
          if (uriToApi.containsKey(req.getRequestURI())) {
            api = uriToApi.get(req.getRequestURI());
          } else {
            chain.doFilter(request, response);
            return;
          }
        }
        byte[] body = binaryReader(req);
        // 处理
        JSONObject reqJson = JSONObject.parseObject(new String(body));
        Map<String, String> headers = new HashMap<>();
        Enumeration<String> headerNames = req.getHeaderNames();
        while (!headerNames.hasMoreElements()) {
          String key = headerNames.nextElement();
          headers.put(key, req.getHeader(key));
        }
        response.getOutputStream().write(wallService.dpHandler(reqJson, headers, api).getBytes(Charsets.UTF_8));
        return;
      }
    
      byte[] binaryReader(HttpServletRequest request) throws IOException {
        int len = request.getContentLength();
        if (len == -1) {
          return new byte[0];
        }
        ServletInputStream input = request.getInputStream();
        byte[] buffer = new byte[len];
        input.read(buffer, 0, len);
        return buffer;
      }
    }
    

    源码位置:https://gitee.com/crazyAsm/Tailgate

    展开全文
  • Socket挡板Java开发

    千次阅读 2021-03-08 07:05:52
    我就尝试用java语言写了一个关于Socket挡板程序,该程序还用了log4j的日志函数。简单说一下代码,首先开启一个端口,这里的端口可以自己定义,如果没有定义,就默认23011端口,用LR建立一个socket连接,发送任意数据...
  • 挡板系统源代码

    2015-05-21 17:09:29
    挡板系统源代码
  • java程序挡板接小球

    2021-03-07 05:26:25
    packageball;importjavax.swing.JFrame;publicclassBallFrame{publicstaticvoidmain(String[]args){JFramef=newJFrame();BallPanelp=newBallPanel();...f.setTitle("挡板接小球");f.setSize(800,600...
  • 在使用include方法的时候,如果使用不当,进场会出现对应模板无法找到的问题。有些情况,我们也想在没有指定模板的情况下能有个默认返回。 这个使用扩展include方法是一个很不错的选择。实现beetl扩展需要做以下...
  • 挡板接小球(Java程序

    千次阅读 2018-12-31 21:29:05
    "挡板接小球" ) ; f . setSize ( 800 , 600 ) ; f . setLocationRelativeTo ( null ) ; //居中 f . setDefaultCloseOperation ( 3 ) ; f . setVisible ( true ) ; f . addMouseMotionListener ( p ) ; ...
  • import java.awt.*; import java.awt.event.*; //挡板接小球游戏 //小球垂直运动 /*1、小球设置了四个关卡 2、通过每一关卡程序提示:“恭喜您已经进入下一关卡” 3、进入下一关卡小球改变一次颜色 4、进入下一关卡...
  • Moco就是解决了开发前端时没有后端支持,开发接口时依赖没有到位的尴尬场景。当然Moco的灵活性,让其有越来越多的应用场景。
  • java代码编写http请求

    2019-12-17 21:21:53
    java代码编写http请求纯java代码模拟HTTP请求 纯java代码模拟HTTP请求 // An highlighted block package com.wk.cd.test.devcore.tk.service; import com.wk.lang.AppException; import java.io.BufferedReader; ...
  • Java中,提供了两个类用于实现TCP通信程序: 客户端:java.net.Socket 类表示。创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信。 服务端:java.net.ServerSocke
  • Java编写TCP网络程序案例 要点提示 服务端,使ServerSocket对象指定监听的端口号,通过Socket对象获得客户端连接 客户端,使用Socket指定IP地址和端口号 先运行服务端,再运行客户端,否则会连接失败 客户端和...
  • // 通过挡板配置构建映射关系,形成最终的appInfo集合 templateInfoList.forEach(item -> { Map apis = Optional.ofNullable(appInfoHashMap.get(item.getAppId())) .orElseGet(() -> { AppInfo appInfo = new ...
  • java扩展函数实现 package cn.twh.wall.beetl.tag; import org.beetl.core.exception.BeetlException; import org.beetl.ext.tag.IncludeTag; /** * include 某个文件,如果模板存在则引入,不存在
  • java简单小球游戏

    2018-06-22 12:10:22
    java简单小球游戏
  • 用户能通过GUI组件指定生成小球的数量,每个小球将从随机的位置出现,并具有随机颜色,随机速度以及随机的运动方向,小球沿初始方向匀速运动,当碰到窗口边缘时,小球将依据受力原理改变运动方向(可简化考虑,受力...
  • JAVA程序找错~

    2021-02-28 18:38:17
    我做了一个JAVA程序程序很简单,就是在屏幕上显示一个矩形块,用键盘上的左右方向键可以控制它左右动,我觉得做的没问题,可是运行时怎么按它都不动,哪位大侠能帮忙找一下错误啊(...我做了一个JAVA程序程序很...
  • 挡板测试

    万次阅读 2018-11-05 10:30:49
    挡板测试其实是MOCK程序的一种,用于超大型项目~ 就是仅提供一个或者几个功能测试的沙盒beta 版本 首先,挡板测试在测试领域提到的不是很普遍。挡板测试大概就是:在一些跨系统的性能测试项目中,往往由于客观因素的...
  • java弹球小程序

    2013-11-28 16:38:16
    java弹球小程序桌面弹球是游戏中常见的游戏,从以前的掌上游戏机到如今的手机游戏,都是一个十分经典的游戏。 玩家控制一个可以左右移动的挡板去改变运动中小球的移动方向,目的是用小球消除游戏屏幕中的所有 障碍物...
  • 在我们的性能测试中或多或少的都要参与些开发的工作,例如最常见的就是挡板的开发,因为在压测中往往不是单一系统会有一些关联系统,而这些关联系统不是我们测试的重点,为了最大...本次压测中发现挡板程序会执行...
  • 系统调试利器:挡板实战

    千次阅读 2019-06-04 23:30:07
    您是否有下面类似的困扰: ...本场 Chat 面向开发、测试以及对技术感兴趣的人员,能够带领大家去认识挡板的在系统开发中的重要性,在协议的框架下挡板能够带来更好的联调、演示的便利。跨系统的调用自从微服务以来变...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 523
精华内容 209
关键字:

java挡板程序

java 订阅
友情链接: KeilC51V805.rar