自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大事龙

专注互联网产品研发,深度挖掘互联网新元素

  • 博客(276)
  • 资源 (2)
  • 收藏
  • 关注

原创 软件开发中的测试用例

测试用例是软件测试中的重要组成部分,用于验证软件系统是否满足业务需求和技术要求。编写好的测试用例能够有效地确保软件的质量和可靠性。以下是一些常用的测试用例编写步骤:确定测试目标:定义清晰的测试目标和测试范围,确定需要测试的功能和模块。制定测试计划:制定测试计划,定义测试资源、测试时间表和测试工作流程等方面的具体内容。根据需求编写测试用例:根据业务需求和技术要求编写测试用例,每个测试用例应该包含如下内容:测试名称:简短描述测试的目的和内容。

2023-03-24 22:17:31 168

原创 kafka Cannot convert from [java.lang.String] to [xxx] for GenericMessag

Kafka Consumer需要将从Kafka Broker接收到的消息反序列化为Java对象,而。属性设置为正确的反序列化器类。例如,如果要将消息反序列化为JSON格式的Java对象,则可以使用。属性用于指定反序列化器的类名。如果使用了第三方反序列化器,也需要确保该反序列化器实现了该接口。该异常表明,Kafka Consumer尝试将一个字符串类型的消息转换为。如果反序列化的Java对象不在该包下,则会抛出。将消息反序列化为JSON格式的Java对象,并将。类型的Java对象,但是没有正确的反序列化器。

2023-03-24 15:36:01 1513

原创 cannot covert xxx to class org.apache.kafka.common.serialization.StringSerializer specified in value

Kafka Producer需要将消息序列化后发送给Kafka Broker,而。属性设置为正确的序列化器类。例如,如果要将消息序列化为JSON格式,则可以使用。这个错误通常发生在使用Kafka Producer发送消息时,没有正确地配置。属性用于指定序列化器的类名。如果使用了第三方序列化器,也需要确保该序列化器实现了该接口。将消息序列化为JSON格式发送给Kafka Broker。,但是该类无法转换为正确的序列化器类。在Spring Boot中,可以在。要解决这个问题,需要将。属性的值必须是实现了。

2023-03-24 15:31:55 1100 1

原创 到底是 spring.redis 还是 spring.data.redis

的扩展和增强,提供了更多的 Redis 配置选项和功能,例如支持 Redis Sentinel 和 Redis Cluster 等模式。因此,在 Spring Boot 2.x 及以上的版本中,推荐使用。是 Spring Boot 1.x 版本中使用的配置前缀,用于配置与 Redis 相关的参数,如连接地址、端口、密码等。则是从 Spring Boot 2.x 版本开始引入的新的配置前缀,也用于配置 Redis 的相关参数。进行 Redis 相关的配置。

2023-03-22 15:17:55 822 2

原创 Java 使用 Timer 进行调度

入口程序public class Main { public static void main(String[] args) { // Timer 调度 Timer timer = new Timer(); timer.schedule(new TimerDemo("first1"), 1000, 1000); }}...

2018-04-13 10:09:32 374

原创 MyBatis mapper 注解过程中通过 LanguageDriver 实现动态 SQL

使用前,可以先看一下 链接: http://www.mybatis.org/mybatis-3/dynamic-sql.html 详细说明了 mybatis 的动态 sql 实现方式,这里将重点关注 Pluggable Scripting Languages For Dynamic SQL 一节。 因为懒,所以更追求极致这里使用一个 UserMapper 做为 Demo 进行演示

2018-01-30 08:17:02 8463

原创 Java 动态代理实现

实现流程1、代理对象 2、接口 3、目标对象源码代理对象package com.test;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class Main { public

2018-01-29 22:11:13 506

原创 通过 WIFI 用 adb 调试 Android 设备

通常情况下,通过 usb 用 adb 调试 Android 设备,但随之的问题是你总需要一根线链接着你的手机或者他人的手机,这样的体验可能会让你很糟糕,幸好,万能的 adb 已经为我们准备好了一切,我们可以通过 wifi 来连接 Android 设备步骤: 1、确认手机和adb(即安装有adb工具的电脑)在同一个网络环境 2、用 USB 链接设备,并确认 usb 模式下的工作状态是否正常

2018-01-20 16:56:41 659

原创 微信跳一跳高分系列四:一个 JAVA 版开源的微信跳一跳辅助工具

基于前三篇文章,我们一起来制作一个自动化工具,解放劳动力,通过机器自动完成跳一跳wechat-jump-helper一款JAVA版开源的微信跳一跳小程序辅助工具 传送门一:wechat-jump-helper@github 传送门二:wechat-jump-helper@gitee使用直接在 release 中下载最新版本,并确保您有 java 环境,adb 环境,通过命令

2018-01-20 02:01:03 1497

原创 微信跳一跳高分系列一:解读 adb 工具

adb常用命令general commands: // 常用命令 devices [-l] list connected devices (-l for long output) // 列出当前链接到 adb-server 的设备 help show this help message // 查看帮助 vers

2018-01-20 01:52:24 2062

原创 微信跳一跳高分系列二:adb shell 中的常用命令

input 命令> adb [-s device] shell input [source>] [...]The sources are: mouse keyboard joystick touchnavigation touchpad trackball stylus dpad

2018-01-20 01:52:01 1362

原创 微信跳一跳高分系列三:用 adb 破解微信跳一跳小程序

写在前面:网上关于微信跳一跳的文章已有很多,写这篇的目的是对 adb 工具的一个熟悉过程,也是对未入门的新朋友的一个引导步骤: 1、保存当前跳一跳页的截图到手机 adb shell screencap /sdcard/jump.png 2、推送图片到PC adb pull /sdcard/jump.png d://jump 3、通过 PS 等工具,测量出两个方块要点击位置的距离(还可

2018-01-20 01:50:11 2148

原创 减少重复工作,通过 Annotation Processor 自动完成源码的生成

背景:类似 lombok.Data 解决了 bean 类的自动完成 setter/getter 方法,在 scrapy4j 框架实现过程中,发现 item 每次都需要人工编写,且编写内容除了属性和类名不同之外,结构完全一致。由此,完全有必要实现一个功能,让程序自动生成这部分源码,用以减少人工的重复性工作。实现原理基于 JSR 269: Plugaable Annotation Pr

2018-01-09 07:34:05 2649

原创 解决 Gradle 进行多模块开发时,模块相互依赖的问题

问题背景在使用多模块开发时,通常一个模块(A)可能会需要其它模块(B)中的类或方法,这时就产生了依赖关系,也就是 A 依赖 B。要解决上述依赖,有两种方案1、将B发布到 repo 仓库(可以为本地仓库)2、A直接依赖B1、将 B 发布到仓库,修改 B 模块中的 build.gradle,增加apply plugin: 'maven'uploadArchives {

2018-01-07 16:58:24 19883 3

原创 使用 Wireshark 对本地 socket 通信进行数据抓包

通常在通信开发测试中,本机即充当了 server 端,也充当了 client 端,这时由于不经过网卡,使用 wireshark 无法对这个数据进行抓包分析解决办法: 1、以管理员方式打开命令行 2、route add 本机内网IP mask 255.255.255.255 网关地址如,我的机器 192.168.0.200,设置如下即可 route add 192.168.0.200 mask

2017-12-28 03:53:52 7590 1

原创 Python 下的 tcp server/client 通信

说明:只做基础,不做延伸,直接上代码1、源文件server.pyfrom socket import *server = socket(AF_INET, SOCK_STREAM)server.bind(("localhost", 5555))server.listen(1)sock, addr = server.accept()print "[+] connected from ", a

2017-12-27 02:15:10 21716

原创 Python 查看服务器磁盘信息

查看磁盘信息,主要用到了两个方法psutil.disk_partitions()psutil.disk_usage()使用方法: 1、安装 psutil pip install psutil2、进入 python shell,并 import psutil 输入 help(psutil.disk_partitions)返回Help on function disk_partiti

2017-12-27 01:35:25 15885

转载 PHP_SCREW 加密

安装 下载地址: http://sourceforge.net/projects/php-screw/编译修改 php_screw.h 中 PM9SCREW 为 自定义字符串,如 DASHILONG 并修改长度为 9 + 2 = 11即,修改#define PM9SCREW "\tPM9SCREW\t"#define PM9SCREW_LEN 10为#define PM

2017-10-10 10:44:08 1312

转载 依赖注入的几种形式及场景

1、依赖的自动注入 只需要在需要的位置注入你需要的依赖,运行容器时,会自动解析依赖(包括子依赖)2、依赖的单例注入 比如 WEB 框架中 的 Request 依赖,需要跟踪整个路由的响应周期,这就需要保持全局的单例依赖3、依赖的契约注入 比如我们依赖 Storage,前期可能使用 FileStorage ,后期发现性能瓶颈需要使用 RedisStorage , 这时候就可以使用 St

2017-09-30 18:53:21 3522

原创 Promise VS Rxjs

Promiselet promise = new Promise(resolve => { let timer = setTimeout(() => { resolve('promise resolve'); }, 2000);});promise.then(value => { console.log('value = ', value)});Rxjsl

2017-09-16 21:24:38 1581

原创 Linux 免密登录配置

场景:A机器无需密码登录到B机器A 机器生成密钥ssh-keygen -t rsa ''生成两个文件 id_rsa 和 id_rsa.pubB 机器更新 authorized_keys 将上述生成的 id_rsa.pub 的内容追加到 authorized_keys 文件中,或者直接在 A 机器执行 ssh-copy-id host(B机器的公网地址)

2017-09-13 17:45:19 1328

原创 通过 SSH 端口转发实现异地内网服务器互通

异地内网服务器互通,直接通过路由器映射也可以做到,但是由于公网IP并不是固定的,因此这里介绍通过 SSH 端口转发,实现的固定IP访问场景:内网机器 A、无固定IP机器B、固定IP机器C,其中 B 机器中运行有 SVN 服务,端口 6060,现在需要 A 访问 B 机器上的 svn 服务方案一:通过非固定 IP:6060 直接访问,显然,这里的IP是可变的,不指定哪一刻IP变化后导致无法访问,需要更

2017-09-12 17:41:44 1644

原创 动手开发一个简易的 PHP for Git Server 第四章

git.phpclass Git{ public static function init($name) { $cmd = "git init --bare {$name}.git"; return self::procExec($cmd, $input); } public static function getInfoRefs($serv

2017-09-11 17:55:05 623

原创 动手开发一个简易的 PHP for Git Server 第三章

app.phpclass App{ public $gitRoot; public function init() { echo Git::init($_POST['repo_name']); } public function getInfoRefs() { $service = trim($_GET['service'

2017-09-11 17:54:17 474

原创 动手开发一个简易的 PHP for Git Server 第二章

router.phpclass Router{ public $patterns = []; public function get($pattern, $callback) { $this->patterns[] = ['GET', $pattern, $callback]; } public function post($pattern, $

2017-09-11 17:53:39 432

原创 动手开发一个简易的 PHP for Git Server 第一章

事情的前因后果,这里不再讲述,直接切入主题进行项目开发,谨以此献给喜欢研究 GIT 的小伙伴项目结构:+ router.php // 路由文件+ app.php // 应用文件+ git.php // Git 操作核心文件+ index.php // 入口文件接下来,将用倒叙的方式,对 git server 进行展开,首先,看一下 index.php$router = new Router;

2017-09-11 17:51:59 512

原创 PHP 设计模式之代理模式

<?php// 在客户端与实体之间建立 一个代理对象(proxy),客户端对实体进行操作全部委托给代理对照,隐藏实体的具体实现细节// Proxy 还可以与业务代码分离,部署到另外的服务器。业务代码中通过 RPC 来委派任务//典型的应用场景:MYSQL 的主从读取分离interface IUserProxy{ public function getUserName(); pu

2017-08-07 13:43:51 386

原创 PHP 设计模式之原型模式

<?php// 1.与工厂模式类似,都是用来创建对象的// 2.与工厂模式实现不同,原型模式是先创建好原型对象,然后通过 clone 原型对象来创建新的对象的。这样就避免了类创建时重复的初始化操作// 3.原型模式适用于大对象的创建,每创建一个大对象需要很大的开销,如果每次 new 就会消耗很大,原型模式仅需要内存拷贝即可class Canvas{ public function i

2017-08-07 13:43:18 347

原创 PHP 设计模式之数据对象映射模式

<?php// 数据对象映射模式class User{ public $id; public $name; public $mobile; public $regtime; private $dataFile; public function __construct($id) { $this->dataFile = "user

2017-08-07 13:42:45 430

原创 PHP 设计模式之迭代器模式

<?php// 在不需要了解内部实现的前提条件下,可以遍历一个聚合对象的内部元素// 相比于传统的编程模式,迭代器模式可以隐藏遍历元素所需的操作class AllUser implements Iterator{ private $ids; private $index; public function __construct() { $this-

2017-08-07 13:41:52 305

原创 PHP 设计模式之装饰器模式

装饰器模式,使得在一个类不能完全满足需求时对其进行一些特定的自定义处理,而无需要新创建一个类<?php// 可以动态的添加修改类的功能class Canvas{ public function init() { echo "init"; } public function rect($top, $right, $bottom, $left) {

2017-08-07 13:41:01 345

原创 PHP 设计模式之策略模式

典型的应用场景:当男性用户访问网站上显示男性相关的类目和广告,当女性用户访问网站时显示女性相关的类目和广告,或默认访问时显示指定相关的类目和广告<?phpinterface UserStrategy{ function showAd(); function showCategory();}class FemaleStrategy implements UserStrategy{

2017-08-07 13:39:22 315

原创 PHP 基本原则

单一职责:一个类,只需要做好一件事情开放封闭:一个类,应该是可扩展的,而不可修改的依赖倒置:一个类,不应该强依赖另外一个类,每个类对于另外一个类都是可替换的配置化:尽可能的使用配置,而不是硬编码面向接口编程:只需要关心接口,而不需要关心实现

2017-08-07 13:36:46 322

原创 PHP 脚本文件使用 “#!/usr/bin/env php” 并执行时提示 No such file or directory

如题,造成了脚本文件无法执行的问题原因:该脚本文件格式是 dos 格式 而非 unix 格式。可能过 vim 查看或修改文件格式,命令如下vim ./file:set ff // 查看:set ff=unix // 设置文件格式为 unix

2017-08-03 15:09:41 3875

原创 创建第一个控制器

application/controllers/Index.php<?phpuse Yaf\Controller_Abstract;class IndexController extends Controller_Abstract{ public function indexAction() { Yaf\Dispatcher::getInstance()->dis

2017-08-03 10:10:25 307

原创 项目目录结构

如图,是一个常用的 Yaf 目录结构详解yaf-starter application controllers // 默认情况下,此控制器属于 Index 模块 Index.php // 默认控制器library // 本地类库models // model 目录modules // 模块目录,结构同 Index 模块plugins // 插件目录views // 模板目录Boo

2017-08-03 10:06:34 377

原创 Yaf 扩展安装

为了更好的演示 yaf 的安装过程,这里采用 docker 下的 php 镜像,进行操作,关于如何安装 php,如何使用 docker 等不在本次操作范围内。两种安装方式pecl 安装pecl install yaf配置 php.ini(可通过 php –ini 查找 php.ini 所在位置),开启 yaf 扩展echo 'extension=php_yaf.so' >> php.ini如果支持扫

2017-08-03 09:42:40 4144

原创 写在前面,白话 Yaf 探秘与深入

网上众多关于 Yaf 的资料多是从鸟哥博客来的,这里仅从技术使用角度,用白话的方式阐述使用过程中遇到的问题、经验总结、解决方案,由于楼主也是初识阶段,可能存在认知不足的情况,在写作当中,如有不洽当的地方,请指正,不胜感激,同时也为后来人提供自学依据,避免不必要的踩坑专题目录:(会随着开发过程进行相应的调整)Yaf 扩展安装项目目录结构创建第一个控制器

2017-08-03 09:32:40 293

原创 solr 启动时指定 solr.home

参数指定./solr start -s /data/db/solr -p 8984全局变量指定export SOLR_HOME=/data/db/solr./solr start -p 8984

2017-08-01 14:17:51 866

原创 解决 CentOS7 容器 Failed to get D-Bus connection: Operation not permitted

事由:通过 systemctl start crond 启动任务时报错,具体如下Failed to get D-Bus connection: Operation not permitted解决方法:启动容器时指定参数 --privileged=true 并执行命令 /usr/sbin/init,完整如下docker run -d --privileged=true --name centos7

2017-07-31 17:52:34 4980 1

TestWinForm

仅用于跟随教程示例下载使用,其他用户下载了也没啥意义

2016-04-07

网页运行exe程序 如何真正实现让网页运行exe程序

如何让网页运行exe程序,相当于安装插件

2010-07-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除