源码

自己如何修改Airtest的源码

不打扰是莪最后的温柔 提交于 2020-01-13 19:02:11
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途 此文章来源于项目官方公众号:“AirtestProject” 前言 相信小伙伴们多少都会遇到想要修改 Airtest 源码,方便自己脚本编写的情况。这时,部分同学会立即去修改 AirtestIDE 文件夹下 Airtest 库的 .py 文件(如下图),其实这样修改是无效的,并不会达到预期的效果。 正确的修改 Airtest 源码的步骤是: 在本地安装 python 环境 安装 Airtest 安装 Poco 在本地的 Airtest 库中修改源码 在本地安装python环境 Airtest 支持 Python 版本为2.7或者<=3.6,但是我们更推荐使用 Python3 。如果你愿意的话我们也同样建议使用 virtualenv 等虚拟环境新建一个干净的 python 环境。各个版本的 python 可以自行到 python 官网上下载安装。 安装Airtest 使用 pip 安装 Airtest 框架 pip install airtest 注意: 在 Mac/Linux 系统下,需要手动赋予 adb 可执行权限,否则可能在执行脚本时遇到 Permission denied 的报错: # mac系统 > cd {your_python_path}/site-packages/airtest/core

Tomcat线程模型分析及源码解读

拥有回忆 提交于 2020-01-13 16:09:52
1 四种线程模型 配置方法:在tomcat conf 下找到server.xml,在<Connector port="8080" protocol="HTTP/1.1"/> BIO: protocol =" org.apache.coyote.http11.Http11Protocol" NIO: protocol ="org.apache.coyote.http11.Http11NioProtocol" AIO: protocol ="org.apache.coyote.http11.Http11Nio2Protocol" APR: protocol ="org.apache.coyote.http11.Http11AprProtocol" 2 Connector 结构 3 三种请求接受方式 Tomcat支持三种接收请求的处理方式:BIO、NIO、APR 1.BIO模式 阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即Java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。 启动tomcat看到如下日志,表示使用的是BIO模式: 2.NIO模式 是java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)

Spring源码解析——如何阅读源码

五迷三道 提交于 2020-01-13 15:01:47
 最近没什么实质性的工作,正好有点时间,就想学学别人的代码。也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想。   手码不易,转载请注明: xingoo    这篇博文你可以了解到:   1 Spring jar包以及源码使用   2 简单的spring运行示例   3 利用断点调试程序,如何快速的阅读程序【快捷键等的使用】   这次阅读的源码比较老了,是3.0.5版本的,由于正好手头有这个版本的源码,而且平时基本上也是用的这个版本Spring,因此后文的分析也都是针对这个版本。   下面贡献一下 Jar包以及源码 ,由于百度云上传的压缩包总是解压失败,就放在csdn上面了。 如何使用jar包以及源码的source包   首先,在工程右键,属性中,添加必要的jar包。   选中必要的jar包,上面给出的源码jar包中,导入spring3.0.5中的所有jar包。   其中lib内的是spring的jar包,用到哪个导入哪个,不知道的话,全部导入就行了。   外面的几个jar包,用于日志以及mysql的驱动。commons-logging jar包是必须的,其他的随意吧。   不确定的话,lib外面的这几个jar包以及lib里面的都导入就行了。   导入jar包后,点开jar包,选中source attachment进行编辑

Ocelot源码解读

a 夏天 提交于 2020-01-13 14:15:54
在使用一个组件前,最好我们要了解其中的一些原理,否则在使用过程中遇到问题,也无从下手,今天我带着大家一起来解读下Ocelot源码,并梳理出具体实现的原理和流程,便于我们根据需求扩展应用。 Ocelot源码地址[ https://github.com/ThreeMammals/Ocelot ], Ocelot文档地址[ https://ocelot.readthedocs.io/en/latest/ ] 查看 .NETCORE 相关中间件源码,我们优先找到入口方法,比如Ocelot中间件使用的是 app.UseOcelot() ,我们直接搜索UserOcelot,我们会找到 OcelotMiddlewareExtensions 方法,里面是Ocelot中间件实际运行的方式和流程。 然后继续顺藤摸瓜,查看详细的实现,我们会发现如下代码 public static async Task<IApplicationBuilder> UseOcelot(this IApplicationBuilder builder, OcelotPipelineConfiguration pipelineConfiguration) { //创建配置信息 var configuration = await CreateConfiguration(builder); //监听配置信息

vue源码技术点(第一天)

为君一笑 提交于 2020-01-13 13:24:53
exports.getAllBuilds = () => Object.keys(builds).map(genConfig) 函数Object.keys 会返回一个对象中所有可枚举的key,如果是数组,将会返回下标。 例如: 1.const configs = { umdDev: { format: 'umd', env: 'development' }, umdProd: { format: 'umd', env: 'production' } } console.log(Object.keys(configs));//["umdDev","umdProd"] 2.const test=["11","22","33"] console.log(Object.keys(test));//["0","1","2"] map函数 方法会返回一个数组,该方法的参数为currentValue, index,arr,. currentValue 必须。当前元素的值 index 可选。当前元素的索引值 arr 可选。当前元素属于的数组对象 process.env.TARGET process对象 node.js中进程相关的对象 是全局对象,因此你可以在code中的任何一个地方访问其对象中的属性,值都是一致的 其中包含一些和进程以及nodejs运行环境相关的一些属性

【Java集合】LinkedList源码解析

半城伤御伤魂 提交于 2020-01-13 13:18:59
LinkedList简介 LinkedList是基于双向循环链表实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。当然同时也具备了链表的特性:插入和删除元素效率高。 LinkedList同样也是非线程安全的,只在单线程下适合使用。 同时实现了Serializable接口,因此支持序列化,能够通过序列化传输;实现了Cloneable接口,能被克隆。 源码分析 核心实现就是通过双向循环链表来对元素进行存储操作。 具体是怎么实现的,通过源代码来看一下。 主要的成员变量: //linkedList中元素个数 transient int size = 0 ; //用来表示LinkedList的头节点 transient Node < E > first ; //用来表示LinkedList的尾节点 transient Node < E > last ; //用来存储LinkedList元素的数据结构 private static class Node < E > { E item ; Node < E > next ; Node < E > prev ; Node ( Node < E > prev , E element , Node < E > next ) { this . item = element ; this . next = next ; this .

Dubbo源码分析4之服务引用

落爺英雄遲暮 提交于 2020-01-13 10:55:30
此文转自 原文 ,在最后做了一点补充 目录 1.简介 2.服务引用原理 3.源码分析 3.1 处置配置 3.2 引用服务 3.2.1 创建 Invoker 3.2.2 创建代理 4.总结 补充 服务引用调用链 1.简介 在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用 服务直连 的方式引用服务,第二种方式是 基于注册中心进行引用 。服务直连的方式仅适合在调试或测试服务的场景下使用,不适合在线上环境使用。因此,本文我将重点分析通过注册中心引用服务的过程。从注册中心中获取服务配置只是服务引用过程中的一环,除此之外,服务消费者还需要经历 Invoker 创建、代理类创建等步骤。 2.服务引用原理 Dubbo 服务引用的时机有两个: 第一个是在 Spring 容器调用 ReferenceBean 的 afterPropertiesSet 方法时引用服务, 第二个是在 ReferenceBean 对应的服务被注入到其他类中时引用。 这两个引用服务的时机区别在于,第一个是饿汉式的,第二个是懒汉式的。默认情况下,Dubbo 使用懒汉式引用服务。如果需要使用饿汉式,可通过配置 <dubbo:reference> 的 init 属性开启。下面我们按照 Dubbo 默认配置进行分析,整个分析过程从 ReferenceBean 的 getObject 方法开始

JDK源码阅读-------自学笔记(一)(详细版集合类)

被刻印的时光 ゝ 提交于 2020-01-13 09:11:55
一、前景提要 本人 经历了IT行业的多种类型企业,外包/创业小公司/中型公司,一步步成长起来,现在可以给大家透露下为什么进大企业在IT行业是重要的: 在外包公司,你要做的就是对接别人写好的接口,然后按照其要求编写一个业务的接口或者几个接口,那么你的技术也就是会写接口,而且还不是全面的,因为只会让你做那部分接口,而不是项目的全部,你对于数据库如何链接,数据库类型,数据库业务逻辑的操作都不会很清楚,所以你做的工作就是跟前段或者没有前段的做单独业务的对接,很多部分都是别人写好的,但是你又看不到,所以你根本不清楚整个业务逻辑是什么. 创业公司小公司(50-500),由于人员少,企业的资金有限,所以很多时候你需要一个人兼职多项工作,多项工作,作为后端就需要会运维服务(Linux),项目部署,系统架构的基本架构搭建,后端的数据库连接,数据库设计,数据库建表,SQL语句的书写,后端三层架构的数据传递等等技能,这里需要的是一种多功能工,虽然你可以会很多技能,但是你也没有一项是精通的技能,所以你也只是一个能干活的员工而已,距离成为架构师,技术总监没有发展起来的可能性,除非你的企业三五年内能增长到几千,上万的员工,但是,按照我国的情况,几乎是不可能的. 中型企业(1000-5000),这时候的项目就已经有了一些架构的雏形,否则的话项目越写越大,越写越冗余,总会写到崩溃的,而这时候很多的设计模式

Leanote 源码版详细安装教程 Mac and Linux

社会主义新天地 提交于 2020-01-13 08:59:55
Leanote 二进制版详细安装教程 Mac and Linux life edited this page on 10 Jan 2017 · 4 revisions 本教程适合 Mac 及 linux 用户的 二进制版 安装。 Mac, Linux 用户的源码版安装,参见 这里 。 Windows 用户的二进制版安装,参见 这里 。 Windows 用户的源码版安装,参见 这里 。 about to fork child process , waiting until server is ready for connections . forked process : 2702 child process started successfully , parent exiting 安装步骤: 下载 leanote 二进制版。 安装 mongodb 。 导入初始数据。 配置 leanote 。 运行 leanote 。 1. 下载 leanote 二进制版 由此处下载 leanote 最新二进制版 。 假设将文件下载到 /home/user1 目录下, 解压文件从而在 /home/user1 目录下生成 leanote 目录: $ > cd /home/user1 $ > tar -xzvf leanote-darwin-amd64.v2.0.bin.tar.gz 2. 安装

大型三甲医院管理系统源码PACS超声科室源码DICOM影像工作站

。_饼干妹妹 提交于 2020-01-13 08:54:08
详情点击查看 开发环境 :VS2008 + C# + SQL2000 功能简介 1、患者登记工作站 集中登记患者基本信息和检查信息,包括就诊方式、患者来源、检查类型、检查部位、申请科室、申请医生等。可根据设备繁忙图合理分配检查设备。提供Dicom Worklist和MPPS服务供支持该协议的影像设备调用,实现检查数据及检查状态的传递。 2、Dicom网关(图像采集工作站) 通过工作号(或影像号)直接从患者登记工作站获取患者基本信息和检查信息,检查医师快速进入检查操作。通过鼠标或脚踏开关进行图像截取和视频录制,系统自动完成Dicom格式的转化工作。 3、存储服务器 遵循Dicom Storage SCP按预设压缩算法完成图像存储与调阅请求。支持网络并发,支持动态内存管理与空间预警。 4、图像浏览及后处理系统 提供布局、移动、缩放、放大镜、窗宽/窗位、亮度、对比度、反色、伪彩、旋转、翻转、角度、箭头、直线、矩形、椭圆、标注、关键图、自由绘图、CT值、ROI、长度、面积、平均值、标准方差、灰度图、定位线以及多序列选择等多种图像处理与测量功能。 5、胶片打印 可有选择性的将检查图像发送到各种类型的激光相机进行胶片打印。支持布局设定、标注打印、测量图形打印和图像的组合打印等功能。 6、报告编辑与审核 可通过系统自带或用户定义的模板进行图文报告的编辑、审核与打印。系统自动进行检查的待报告