JRT1.5发布演示

JRT1.5演示视频

这是一次思想的解放,这是一次自我的挑战,这是一次涅槃重生。信创、安可、Linux、麒麟、UOS、King、PGSQL、ARM、Java围绕在我周围。JRT在DotNetCore的基础上完成了重生。对我而言,它不仅仅是一套框架那么简单;它更是我的理想、我的事业、我的孩子。为了实现在Java上绽放DotNetCore架构的愿景,我倾注了所有的心血。

JRT挑战的是Spring的低效、MyBatis写SQL的原始性、开发环境的复杂性、级联查询的困境、多数据库支持的真实性、客户端的跨平台性,以及部署和维护的复杂性。JRT极大地降低了信创的难度,同时也大幅减少了成本消耗。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在Spring还在以G级别的内存要求的时候,JRTWeb已经和数据库、SVN、Rsync一起以700兆内存稳定的在云服务器上运行了,而且效率很高。
在这里插入图片描述

在别人还在琢磨Spring学习的时候JRT已经敲敲的完成linux桌面三件套测试
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

演示的仪器接口配置
在这里插入图片描述

演示的仪器接口后台代码

import JRT.Core.Dto.CmdDto;
import JRT.Core.Dto.OutValue;
import JRT.Core.Util.LogUtils;
import JRT.Core.Util.MakeCmdUtil;
import JRT.Core.Util.TimeParser;
import JRT.Model.Bussiness.Parameters;
import JRTBLLBase.BaseHttpHandlerNoSession;
import JRTBLLBase.Helper;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 监听模式的仪器测试,监听实现CMD模式,返回符合CMD的数据监听即可按约定执行
 */
public class JRTMachineTest extends BaseHttpHandlerNoSession {
    /**
     * 记录已经上传的数据
     */
    private static HashMap<String, Boolean> hasUpData = new HashMap();

    /**
     * 保存仪器数据
     *
     * @param Param        参数
     * @param Session
     * @param Output
     * @return
     * @throws Exception
     */
    public String SaveData(Parameters Param, OutValue Session, OutValue Output) throws Exception {
        String mi=Param.P0;
        String data=Param.P1;
        String epis=Param.P2;
        String fileName=Param.P3;
        String DBColName=Param.P4;
        String index=Param.P5;
        mi=Param.P0;
        //先写Log测试
        LogUtils.WriteDebugLog("mi:" + mi + ",data:" + data + ",epis:" + epis + ",fileName:" + fileName + ",DBColName:" + DBColName);
        //返回的数据
        List<CmdDto> cmdList = new ArrayList<>();
        //MakeCmdUtil.AddGetImageCmd(cmdList, "998", "P2", "D:\\OUT\\2.bmp", "");
        //监听jpg等,取文件,配置了图片后缀就会把图路径用file~加全路径调用保存
        if(data.indexOf("file~")>-1)
        {
            String [] arr=data.split("~");
            String filePath=arr[1];
            File fi=new File(filePath);
            //取图
            MakeCmdUtil.AddGetImageCmd(cmdList, "998", fi.getName(), filePath, "");
            //删图
            MakeCmdUtil.AddRMCmd(cmdList,filePath);
        }
        //取PDF小图,PDF小图解析后调用的图片数据格式image~序号~图片全路径
        else if(data.indexOf("image~")>-1)
        {
            String [] arr=data.split("~");
            String fileIndex=arr[1];
            String filePath=arr[2];
            File fi=new File(filePath);
            //取图
            MakeCmdUtil.AddGetImageCmd(cmdList, "998", fileIndex, filePath, "");
            //删图
            MakeCmdUtil.AddRMCmd(cmdList,filePath);
        }
        //取PDF的大图,PDF页图解析后调用的图片数据格式page~序号~图片全路径
        else if(data.indexOf("page~")>-1)
        {
            String [] arr=data.split("~");
            String fileIndex=arr[1];
            String filePath=arr[2];
            File fi=new File(filePath);
            //取图
            MakeCmdUtil.AddGetImageCmd(cmdList, "998", "page"+fileIndex, filePath, "");
            //删图
            MakeCmdUtil.AddRMCmd(cmdList,filePath);
        }
        return Helper.Object2Json(cmdList);
    }

    /**
     * 得到文件服务地址供接口上传图片
     * @param Param
     * @param Session
     * @param Output
     * @return
     * @throws Exception
     */
    public String GetFileService(Parameters Param, OutValue Session, OutValue Output) throws Exception {
        String mi=Param.P0;
        //返回文件服务路径
        return "https://101.33.230.103:8081/jrtlis/FileService/^/zlzmach/" + TimeParser.GetNowDate();
    }

    /**
     * 保存文件到数据库
     * @param Param
     * @param Session
     * @param Output
     * @return
     * @throws Exception
     */
    public String SaveImage(Parameters Param, OutValue Session, OutValue Output) throws Exception {
        String mi=Param.P0;
        String epis=Param.P1;
        String ImageClass=Param.P2;
        String fileName=Param.P3;
        String FullName=Param.P4;
        //先写Log测试
        LogUtils.WriteDebugLog("mi:" + mi + ",epis:" + epis + ",ImageClass:" + ImageClass + ",fileName:" + fileName + ",FullName:" + FullName);
        return "";
    }

    /**
     * 查询要上传的指令
     * @param Param
     * @param Session
     * @param Output
     * @return
     * @throws Exception
     */
    public String QryUpdata(Parameters Param, OutValue Session, OutValue Output) throws Exception {
        String mi=Param.P0;
        //先写Log测试
        LogUtils.WriteDebugLog("mi:" + mi + ",调用上传查询");
        //返回的数据
        List<CmdDto> cmdList = new ArrayList<>();
        //读文本仪器
        if (mi.equals("1")) {
            if (!hasUpData.containsKey("0947809")) {
                MakeCmdUtil.AddTxtCmd(cmdList, "0947809", "D:\\OUT\\uptxt.dttmp", "这是JRT上传的文本串", "0", "");
                MakeCmdUtil.AddCPCmd(cmdList, "D:\\OUT\\uptxt.dttmp", "D:\\OUT\\uptxt.dt");
                MakeCmdUtil.AddRMCmd(cmdList, "D:\\OUT\\uptxt.dttmp");
            }
        }
        //读数据库仪器
        else if (mi.equals("2")) {
            if (!hasUpData.containsKey("0947810")) {
                MakeCmdUtil.AddSqlCmd(cmdList, "0947810", "insert into DBUpHistory(DataCode,KeyData,DateStr,Data) values('0947809','1','这是JRT用SQL插入的数据','1')");
            }
        }
        MakeCmdUtil.AddGetImageCmd(cmdList, "999", "P1", "D:\\OUT\\1.bmp", "");
        return Helper.Object2Json(cmdList);
    }

    /**
     * 设置上传指令执行状态
     * @param Param
     * @param Session
     * @param Output
     * @return
     * @throws Exception
     */
    public String SetQryStatus(Parameters Param, OutValue Session, OutValue Output) throws Exception {
        String mi=Param.P0;
        String setStatusKey=Param.P1;
        //先写Log测试
        LogUtils.WriteDebugLog("mi:" + mi + ",setStatusKey:" + setStatusKey + "设置状态");
        hasUpData.put(setStatusKey, true);
        return "";
    }
}

认认真真做产品、踏踏实实写代码、耐耐心心等风口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/568272.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索嵌入式系统:快速入门指南概览

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

【数据结构(邓俊辉)学习笔记】向量03——常规向量

文章目录 0.概述1.元素访问2.置乱器3.判等器与比较器4.无序查找4.1 判等器4.2 顺序查找4.3 实现4.4 复杂度 5. 插入5.1 算法实现5.2 复杂度分析 6. 删除6.1 区间删除6.2 单元删除6.3 复杂度 7. 唯一化7.1 实现7.2 正确性7.3 复杂度 8. 遍历8.1 实现8.2 复杂度 9. 总结 0.概述 …

CUDA线程管理

核函数在主机端启动时&#xff0c;执行会转移到设备上&#xff0c;并且将控制权转移回主机。当核函数在GPU上运行时&#xff0c;主机可以运行其他函数。因此&#xff0c;主机与核函数是异步的。 此时&#xff0c;设备端也就是GPU上会产生大量的线程&#xff0c;并且每个线程都…

手势估计 | 使用TensorRT实现的实时手势估计+手势分类

项目应用场景 面向手势识别场景&#xff0c;项目具有实时手势识别 手势分类功能&#xff0c;采用 TensorRT 进行 GPU 加速推理&#xff0c;可通过手势识别进行远程控制。 项目效果 项目细节 > 具体参见项目 README.md (1) 安装依赖 git clone https://github.com/NVIDIA-…

初入单元测试

单元测试&#xff1a;针对最小的功能单元(方法)&#xff0c;编写测试代码对其进行正确性测试 Junit可以用来对方法进行测试&#xff0c;虽然是有第三方公司开发&#xff0c;但是很多开发工具已经集成了&#xff0c;如IDEA。 Junit 优点&#xff1a;可以灵活的编写测试代码&am…

2024年Java接单平台强力推荐!各个都知名!

Java这几年真卷飞了&#xff0c;一点都不夸张。因此&#xff0c;很多程序员朋友都已经试着转方向、换赛道了。试着接单、找私活就是一大途径。当然&#xff0c;特别是有技术、又有相对空闲时间的朋友&#xff0c;更值得一试。既是增加收入的捷径&#xff0c;又可以提升自我——…

SQL Server 中语句显示红色波浪线,提示对象/列名无效解决方法(无其他任何显式错误的情况)

拼写 名称等都没有出现任何错误时&#xff0c;依旧报错&#xff1a;对象/列名无效 解决步骤&#xff1a; 工具-选项-文本编辑器-Transact-SQL-IntelliSense重新勾选 启用 IntelliSense或者将 最大脚本大小改为 无限制 当然 工具卡了也可能会失效&#xff0c;进行 刷新 保存 或…

智慧安防视频监控EasyCVR视频汇聚平台无法自动播放视频的原因排查与解决

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流…

开源大模型Llama3,堪比GPT-4。手把手本地安装,纯小白可操作,不需要编程经验,国内可下载,可视化使用。

最近最劲爆科技动态&#xff0c;Meta开源Llama3模型&#xff0c;最强开源模型。 Llama3发布后&#xff0c;扎克伯格亲自给媒体表示“要超越所有人&#xff0c;做最领先AI”。 吴恩达等一众大佬表示祝贺。 在线体验地址&#xff1a;https://www.meta.ai/ 不过国内在线体验基本…

【服务器部署篇】Linux下Ansible安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

MySQL的root用户无法远程连接

默认root用户只允许本地连接&#xff0c;所以需要修改mysql库中user表中名为root的用户的host为“%” select Host,User from user;UPDATE mysql.user SET host % WHERE user root; FLUSH PRIVILEGES;

一文整理完MySQL关系型数据库相关知识

MySQL关系型数据库 1. 介绍1.1 MySQL 2. 安装3. SQL语句4. SQL分类5. DDL5.1 库的DDL5.2 表、列的DDL 6. DML6.1 添加数据6.2 修改数据6.3 删除数据 7. DQL7.1 基础查询7.2 条件查询7.3 排序查询7.4 聚合函数7.5 分组查询7.6 分页查询 8. 约束8.1 约束分类 9. 多表查询9.1 内连…

实现Spring底层机制(三)

文章目录 阶段4—实现BeanPostProcessor机制1.文件目录2.初始化方法实现1.编写初始化接口InitializingBean.java2.MonsterService.java实现初始化接口3.容器中的createBean方法增加初始化逻辑&#xff0c;判断对象类型是否是InitializingBean的子类型&#xff0c;如果是&#x…

Vue+OpenLayers7入门到实战,OpenLayers加载GeoJson数据并叠加GeoJson中的要素到地图上

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上加载GeoJson数据并叠加GeoJson中的要素到OpenLayers矢量图层上。 GeoJson数据格式可以参考博主另一篇文章《GIS开发入门,GeoJSON是什么?GeoJSON格式标准介绍》,那么…

TLV61048非同步升压BOOST转换器输入电压2.6-5.5V输出电流4A输出电压最高15V

推荐原因&#xff1a; 输入电压较低&#xff0c;输出电流可达3.5A SOT23-6封装 批量价格约0.70元 TLV61048引脚 TLV61048引脚功能 7 详细说明 7.1 概述 TLV61048是一款非同步升压转换器&#xff0c;支持高达 15 V 的输出电压和输入范围从 2.61 V 到 5.5 V。该TLV61048集成了…

不用写一行代码,就能让你的公众号华丽变身成AI智能,超详细的攻略来了~

为了让你的公众号华丽变身成AI智能&#xff0c;我们用到了扣子AI&#xff0c;不用写一行代码&#xff0c;只需要三个步骤&#xff1a;创建Bot、关联公众号、发布Bot。 下面我来给你一个个讲解。 首先打开扣子官网&#xff0c;注册并登录&#xff0c;进入主页面之后就可以开始…

DSPy入门:告别指令提示,拥抱编程之旅!

原文&#xff1a;intro-to-dspy-goodbye-prompting-hello-programming 2024 年 2 月 27 日 DSPy框架如何通过用编程和编译代替提示来解决基于LLM的应用程序中的脆弱性问题。 目前&#xff0c;使用大型语言模型(LLMs)构建应用程序不仅复杂而且脆弱。典型的pipelines通常使用pr…

解决“找不到MSVCP120.dll”或“MSVCP120.dll丢失”的错误方法

在计算机使用过程中&#xff0c;遇到诸如“找不到MSVCP120.dll”或“MSVCP120.dll丢失”的错误提示并不罕见。这类问题往往会导致某些应用程序无法正常运行&#xff0c;给用户带来困扰。本文旨在详细阐述MSVCP120.dll文件的重要性、其丢失的可能原因&#xff0c;以及解决方法&a…

nginx开启basic认证

basic认证也叫做http基本认证&#xff0c;防止恶意访问 首先用在线网站生成一个叫做htpasswd的账号密码文件。 将生成结果复制到/etc/nginx/htpasswd文件中 在server的location中配置 server { listen 80; server_name a.com;location / { root html;index index.…

2001-2021年上市公司制造业智能制造词频统计数据

2001-2021年上市公司制造业智能制造词频统计数据 1、时间&#xff1a;2001-2021年 2、来源&#xff1a;上市公司年报 3、指标&#xff1a;年份、股票代码、行业名称、行业代码、所属省份、所属城市、智能制造词频、智能制造占比(%) 4、范围&#xff1a;上市公司 5、样本量…