自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 Java开发QQ机器人

很早之前就想过开发一个qq机器人,不过之前一直在想怎么抓包,模拟,最近我朋友给我说了个github的开源项目,再次开工推荐关闭QQ的设备锁,否则模拟QQ登录可能需要验证,虽然官方有解决方案,不过开发阶段还是太麻烦项目地址https://github.com/mamoe/mirai依赖https://docs.mirai.mamoe.net/ConfiguringProjects.html这是我开发使用的版本<dependency> <groupId>net.

2022-04-05 09:08:16 3806 3

原创 Java开发WIN10动态壁纸

很早之前我就想使用Java做个动态可交互的WIN10壁纸,但是在网上查询大部分都是使用C++,Python制作的,我花了将近一天的时间研究。发现还是可以的,无论是C++还是Python实际都是调用user32.dll,Java通过JNA也可以调用该DLL关键代码WinDef.HWND hide=null;// 开启背景窗口 若需要动画 可能会阻塞 需要新开线程 窗体推荐全屏无边框new Thread(TestFrame::new).start();// 若需要响应事件 需要使用JNA 监听全局

2022-03-20 20:49:06 2892 2

原创 代码远程调用aria2实现URL资源或BT种子下载

说明aria2是一个非常强大的下载工具,再加上ariang可视化界面,可以非常方便的使用,不过我发现ariang和aria2都没有定时下载的功能,想要半夜利用网络快速下载比较麻烦,于是我便想用SpringBoot的定时任务为其添加延时下载的功能,网上一统找后发现乱七八糟基本都是抄的官网案例,但是官网也有一个大坑,就是对于用户验证只说使用token验证,但没对token过多描述,网上其他人写的也完全不提token代码这里只要搞清除 JSON 数据格式发个post请求就可以了,不一定使用那门语言添加U

2022-02-20 19:41:32 2552

原创 有台服务可以干哪些好玩的事

从我接触服务器已经两年了,中间用服务器干了不少好玩的事,特此记录一下,也可以算是给刚有服务器的同学找点乐子下面记录一下我用服务器干了什么,没有顺序想到哪说到哪搭建对象存储虽然各家都有对象存储不过他们的真是慢的一批,我的服务器4M的都比他们的快不少,而且还收各种费用,我推荐使用的是minIO,API简洁干净,功能也基本够用,我最终搭建在一个8M带宽的服务器上用于支撑我的视频网站项目基本可以做到5个视频同时播放不卡顿。搭建个人网盘百度云分享文件各种限制非常麻烦,可以搭建自己的网盘,不仅随时随地在线查

2022-02-13 21:10:37 3089 1

原创 Java游戏框架编写

Java游戏框架整合SpringBoot与OpenGL

2022-02-10 15:16:25 5705 4

原创 仿B站web,APP,后台

体验地址安卓端:http://82.157.168.147:7000/bilibili/phone/app.htmlweb端:http://82.157.168.147/安卓端番剧短评界面频道界面最近投币视频界面开屏界面,可以通过后台动态控制收藏夹详情页动态分享页面动态搜索界面动态搜索界面动态点击图片预览界面直播界面互动界面直播推荐界面直播历史界面登录界面注册界面侧滑菜单个人页面主页

2021-12-25 19:36:46 1440 1

原创 编译时注解

很早之前我便会了使用编译时注解生成新的文件,类似安卓中黄油刀等,但是我的目标不是生成新的类,而是在编译时修改字节码做出类似Lombok那样的插件最近抽空找了一些资料终于写出了自己的编译时字节码修改注解参考:https://liuyehcf.github.io/2018/02/02/Java-JSR-269-%E6%8F%92%E5%85%A5%E5%BC%8F%E6%B3%A8%E8%A7%A3%E5%A4%84%E7%90%86%E5%99%A8/关于对应的mavan配置我前面写过,网上也有一大堆,这

2021-12-25 15:48:27 368

原创 我的杂记两篇

辅助创建对象工具我们编写代码时有些时候需要编写组装比较复杂的参数,写起来,非常麻烦,我以前使用的一次mapstruct,想按照它的思路写一个编译时组件处理器,但是对于级联属性的赋值,在编译时无法获取详细信息,最终只能求助于运行时注解实际也非常简单,就是使用反射创建对象,并对对象的级联属性赋值,若对象没有创建自动创建,我在此基础上又使用责任链与代理模式,把对象的创建逻辑,类型转换逻辑给抽取出来了效果:隔空传参你是否遇到这样的问题,A创建B,B创建C,但是C需要A的参数,B虽然不需要但是还是要使用

2021-12-10 16:46:36 218

原创 编译时Aop

自从学了编译时注解后一直想尝试用它写个Aop,今天花了一下午编写完毕关于编译时注解我前面有几篇博客简单介绍,这里就不重复介绍了实际主要就是搜集信息然后代码生成搜集信息主要是要对各种类元素结构熟悉,了解自己想要的信息在哪里代码生成基本就是用前面搜集的信息进行类的构建,可以使用现有的工具库,也可以使用模板引擎,或直接字符串拼接使用效果实际要了解编译时注解主要要查看对应类文件的生成,基本看完对应生成的类文件,它也便没什么神秘的了这里其实还有很多可以补充的,例如,被代理对象的传入或增强对象的传

2021-11-24 18:41:59 244

原创 编译时注解自动生成DataHolder

安卓编写DataAdapter以及DataHolder一直是一件非常麻烦的时,于是我便想使用编译时注解不影响性能自动生成DataAdapter以及DataHolder但是仔细研究一下发现,要想统一DataAdapter是一件非常麻烦的事而且DataAdapter不仅管理数据还管理着事件,事件又需要各种资源,所以最后退而求其次自动生成DataHolder主要对数据进行管理使用效果默认数据绑定是使用map对各种情况映射,已对场景情况处理,可以添加自定义处理器,也可也添加命名处理器来处理特殊的视图数据绑定

2021-11-15 18:17:04 292

原创 编译时ioc

我以前编写Spring时非常喜欢它的依赖注入功能,编写安卓时便也想去使用,安卓一般使用编译时注解而不是运行时,找到了一些现成的,不过还是想自己写一个试一试主要模块遵循Android开发的规律,分为api与注解处理器原来基本就是根据运行时注解生成对应的代码信息,在运行时,只需要调用一下生成的代码就可以了使用实现功能(基本看组件就可以知道实现了什么功能)BindTool.getInstance().init(Test.class, TestCon.class);//初始化推荐在Applic

2021-11-12 18:30:15 1885 1

原创 编写一个编译时注解

最近在回看Java核心技术看到了编译时注解生成Java类并编译,手动尝试了一下这里模仿ButterKnife写个简单的Dome记录一下,再开安卓项目比较麻烦,这里直接以字符串赋值为例编写对应注解@Retention(RetentionPolicy.SOURCE)//保留到源码即可@Target(ElementType.FIELD)public @interface Value { String value() default "";}编写对应处理器@SupportedAnnotat

2021-10-22 18:19:04 160

原创 Java游戏框架的尝试

国庆期间闲了下来打算写个Java的游戏框架,方便以后直接使用框架,有点小想法快速开发,之所以使用Java来做,是因为直接接触底层,更加自由,这里只分享一些想法与实现自动注入首先,自己维护依赖关系一定是不可靠的,可以使用Spring自动注入,或自己写个自动注入框架,这里我是自己写的不得不佩服Spring的设计真的是经得住考验,原来最开始,对于依赖注入,我采用的是先实例化对象再填充属性,遇到的第一个麻烦就是无法找到一个时机在需要注入属性完成唯一一次的初始化,这里afterPropertySet变得必要

2021-10-07 23:19:56 294

原创 DPlayer开发弹幕后台

DPlayer是一个非常好用的h5视频播放器,支持mp4,flv,m3u8和弹幕功能,不过原版的后台弹幕地址基本挂了,虽然也有https://dplayer.moerats.com可以长期使用,不过,还是自己控制后台更好,可以实现一些更好的功能网上大对数把DPlayer的后台搞的太复杂了,基本大多数都是Docker需要安装一堆东西,实际只需要看明白前后台交互会发现,弹幕后台十分简单完全可以自己编写视频开始获取所有弹幕根据视频Id获取弹幕数据(GET)https://dplayer.moerats.c

2021-10-02 19:37:03 1147 3

原创 Java透明桌宠并于窗口交互

今天发现了一个特别好玩的东西,可以动态获取窗口信息依赖https://github.com/java-native-access/jna关键代码WindowUtils.setComponentMask(frame,new Rectangle(50,50,50,50));//设置遮罩使只显示部分Rectangle rectangle = window.getLocAndSize();//只能获取当时的窗口位置hwnd = window.getHWND();//获取窗口句柄WindowU

2021-09-26 14:06:59 626 2

原创 JavaSwing编程总结

都2021年了,还有人用JavaSwing?这只是我的一个爱好,我喜欢做界面开发,但是又只有Java还学的不错,大部分Java书籍中对JavaSwing介绍的都比较一般,我便找了《Java2图形设计卷IISwing》介绍的还算不错,正好中秋节有点时间,学习整理了一下,整本书约1000页,肯定没有全部记录,记录了一下我感觉比较好玩的,若你热爱JavaGUI编程,全部看下来一定有所收获Swing组件类以J开头Swing设置JFrame风格(必须在显示前调用)// Metal风格 (默认)String l

2021-09-22 14:58:48 1489 1

原创 手写一个代码热部署

最近发现javassist中一个十分好玩的类,HotSwapper,可以动态更改运行中的类,于是便想写一个代码热更新的小工具热更新效果(不仅热更修改部分还保留了原来的变量值)Test1逻辑编写过程我又突发奇想与原来的MakeR结合自动更新资源文件自动更新资源文件效果对指定资源目录的文件进行增删会自动更新R类更新后的R类HotSwapper使用起来也非常简单// 必须指定虚拟机参数:-agentlib:jdwp=transport=dt_socket,server=y,suspend=

2021-09-18 15:42:18 503

原创 滑动验证工具类

最近想实现一个滑动验证码,但是没有找到太好用的,就自己写了一个主要思路就是后台动态生成图片,并存储偏移值,方便验证,与自定义填写的图片验证码差不多。存储在了seeeion中,也可以在提交时验证。一样写了两版,一版普通Maven版,方便直接使用,一版spring-boot-starter方便与SpringBoot结合使用。项目目标滑动验证码 自己编写 使用session存储 工具类 每次 随机 可以设置各种信息先开发工具类 再开发SpringBootStarter设置图片大小

2021-08-17 15:13:47 494

原创 使用javassist辅助开发JMX

实际这个功能Spring本身就有且做的更好,这里就又造了一下轮子使用Java自带的Compiler+字符串拼接/模板引擎,也可做,不过这里为了方便直接使用的javassist使用效果待代理类使用效果主要部分注解,非常简单@Datapublic class MBeanInfo { private CtClass targetClass; private String group; private String name; private String

2021-08-16 21:37:17 118

原创 Linux系统命令及Shell脚本实践指南笔记

说实话,这真是一本比较入门的Linux书籍,笔记,已经尽可能记录了,不过还是没有记多少,基本还没有学校的选修课讲的深入常用文件含义/etc/issue:修改登录提示语/etc/passwd:用户密码文件 依次为 用户名,密码(实际存储在/etc/shadow中),uid,gid,说明,家目录,登录shell/etc/shadow:存储密码信息(密码是加密过的,且只有管理员可以查看)/etc/hosts:同Windons下的Hosts文件常用指令date +格式化 例如 date +%Y-%

2021-08-11 17:41:40 220

原创 根据xml文件逆向生成对应的DTD约束

主要是搜集各个标签出现的案例(主要记录孩子特征,属性特征),最终根据每个案例,综合得出标签特性,最终拼接字符串实际,IDEA会根据已经存在的推断提示,若有一个较好的案例,可以直接把示例复制到xml文件使用提示编写完毕再删除使用效果随便找的原始xml文件生成效果使用全部代码/** * @author 邵康 * @date 2021/8/11 14:27 */public class DtdCreator { @SneakyThrows//直接输出的重载 publi

2021-08-11 15:55:42 520

原创 使用代码生成简化CRUD

主要是使用velocity根据数据库表生成常用的增删改查操作文件database:指定数据库信息setting:指定一些全局设置location:用于指定生成的文件路径与文件名格式table(可以指定多个):用于指定映射规则,参加那种搜索,或不参与搜索,前台显示列名,input类型,是否可以编辑,可以指定外键,用于生成下拉框,或单选按钮生成的API暂时还没有做前台页面的生成,已经预留了数据,稍后会做完整代码:https://gitee.com/shaokang123/crud-create

2021-08-11 13:09:32 130

原创 使用ClassPathBeanDefinitionScanner写一个包扫描

若要使用ClassPathBeanDefinitionScanner对象,必须一个BeanDefinitionRegistry作为入参传入获取该对象的3种方法1,通过一些BeanFactory的实现类,但是并不是所有BeanFactory都支持,默认ApplicationContext就不支持,强转又有风险。2,通过Condition接口的方法,但是这样做太拖离Condition业务的本意。要在其上实现无关的扫描功能。3,使用ImportBeanDefinitionRegistrar,也就是MyBa

2021-08-10 23:21:17 676

原创 UTools,浏览器插件编写特辑

最近完成了我很早之前就想干的事,尝试编写浏览器插件,在探索途中,学习了一下编写UTools插件,与油猴插件,个人强烈建议。很多功能没有必要写浏览器插件,编写个油猴插件就好了,而且非常简单,这些插件几乎都是前端知识。油猴插件本质就是在匹配的url页面执行用户自定义js常用注解含义// ==UserScript==// @name MyTest 插件名称// @namespace http://sk.com/ 插件项目地址同时也是区分不太作者的同名脚本// @versi

2021-08-07 21:38:17 724

原创 MyBatis技术内幕读书笔记

最近花了两三天把我以前看过的《MyBatis技术内幕》又看了一遍,感觉这次受益匪浅,整本书从基础到上层讲解,对于各种xml等基础知识点也扩展了一堆,又在必要时设计模式神插入,就认真的做了一下笔记。不过最近才开始做源码笔记,不太清楚怎么写输入参数类型可以是Map、List 等集合类型,也可以是基本数据类型和 POJO 类型Mybatis的一级、二级缓存一级缓存与session绑定二级缓存与Namespace绑定所有缓存在对应域进行增删改后 都会被清空openSession创建执行器(三种:

2021-08-07 21:16:54 486

原创 图解HTTP读书记录

主要记录一下图解HTTP的读书笔记,最后一章WEB攻击没怎么看,总体来看还是很简单易懂的一本书TCP/IP协议分为4层应用层:应用层决定了向用户提供应用服务时通信的活动。传输层:传输层对上层应用层, 提供处于网络连接中的两台计算机之间的数据传输。网络层:网络层用来处理在网络上流动的数据包。 数据包是网络传输的最小数据单位。 该层规定了通过怎样的路径到达对方计算机, 并把数据包传送给对方。数据链路层:用来处理连接网络的硬件部分。 包括控制操作系统、 硬件的设备驱动,及光纤等物理可见部分。硬件上的范畴

2021-07-27 17:06:51 79

原创 XmlMapper

与我前一天写的ApiMapper类似,不过是通过XPath选择属性值,封装对象ApiMapper:https://blog.csdn.net/weixin_44598449/article/details/118658663相比于ApiMapper,只是把JsonHandler,替换为了HtmlHandler,其他几乎不变直接看使用源文件,这是B站的播放器页面,没有根据Bvid推荐视频的JsonAPI,推荐视频是直接前端渲染到页面上的对应接口相关实体类调用结果项目地址:https

2021-07-12 14:55:49 191

原创 ApiMapper,API请求映射接口

平时写爬虫,或网络API使用免不了与JSON打交道,但是这个过程,是重复,且麻烦的,我就想着写了一个APIMapper,用于把API请求映射到接口上,返回封装的JavaBean数据我以前写个一个API请求使用XML配置的项目,不过最终没有封装为JavaBean,操作不太方便,就想着,模仿MyBatis写个接口映射自动封装JavaBean的使用效果对应的JSON相关实体类接口使用解释标注在接口上指明,默认请求方法,或指定请求基路径标注在接口方法上,指定请求方法,具体请求路径,可以

2021-07-11 20:01:56 690 1

原创 简简单单的B站

你能想象写Web程序时前台跑了,让后台写前台的感受吗?来看看这个全网最简B站。码云地址:https://gitee.com/shaokang123/simple-bilibili前台注册页面登录页面首页基本B站首页内容全都有排行榜综合热门入站必刷分类排行榜直播页面(可以点击下面的切换直播内容)基本也把直播页面的内容做完了搜索页面个人首页动态收藏历史播放页面分P评论直播页面后台登录页面轮播图管理(控制点击跳转的页面)类型管理(控制

2021-07-10 12:10:06 120

原创 H5播放B站源的flv视频

前端代码引入js<script src="js/flv.min.js"></script>注意代码<video id="video" controls="controls" width="1080"> </video> <br> <input type="text" id="text"></input><button id="btn1">播放BvId</button>

2021-07-06 09:11:18 927

原创 编写一个代码生成器

上次我说想自己做个解析Java代码模板的东西,不过实际测试过程中,做的效果不太理想,看了一下MybatisPlus的代码生成器源码,发现了ibeetl,velocity,等模板引擎,都大概学习了一下。最终打算使用velocity来做代码生成。我把它安装到了maven大概效果算是实现了,不过因为前期没有分析,导致后面写的不太好,代码就不放出来了,实在写的不怎么样。这里只展示一下制作过程中遇到的问题velocity简单使用依赖<dependency> <artifactId

2021-07-04 15:33:54 231 2

原创 Java也有R类

安卓开发者都知道,安卓有个R类用于管理资源,可以防止书写路径出错。我想Java也可以借鉴这个思路,对资源目录自动生成R类。而且安卓因为JDK限制没法反复嵌套内部类,但是Java没有这个限制。开干,实际就是递归文件夹生成代码public class MakeR { private static final String CLASS_NAME="R"; private static final String BASE_PATH="src/main/java"; @SneakyT

2021-06-28 18:56:54 1561

原创 小米拨号键键谱曲

以前在B站看过一个UP主用小米拨号键弹奏千本樱,不过我没有那种音乐天赋,就想了一下使用脚本帮忙开干!!!实际还是非常简单的,不要半个小时就完成了,主要是通过B站评论获取曲谱,再通过代码自动生成脚本,使用AutoJS执行。另外想说,AutoJS的布局分析真是神器,安卓开发没有思路也可以使用它看一下其他应用的布局public static void main(String[] args) { int space=100;//普通 间隔 int enter=500;//回

2021-06-26 20:06:12 560 1

原创 超强网页翻译(可用于翻译API文档)

相信有不少人很讨厌,谷歌翻译把代码或其他一些不该翻译的东西翻译了,观看感受奇差,于是我就有了做一款部分选择翻译的工具的想法首先我想到的是使用css选择器,选择那部分不翻译,不过实现太麻烦,改为那部分选择并翻译。整个项目使用Java开发,不太方便在浏览器使用,可以考虑写个js版,作为浏览器插件使用,每个页面运行时执行一下,当然也可以在js中执行其他逻辑如移除广告等。Javs使用的Jsoup对文档进行解析第一版先使用CSS选择器,在使用正则表达式把内部文本翻译,可以复用StringBuffer,只需要

2021-06-23 20:57:06 537 1

原创 移动Web开发学习笔记

大三选了移动Web开发这门课,最后复习时整理了一下学习笔记移动端浏览器也可以使用alert等有趣的标签mark:高亮显示标签track:video,audio的内嵌标签,用于设置字幕信息embed:用于内嵌媒体资源类似video,audio,但是支持的类型更加广泛progress:进度条ruby:给文本添加拼音<ruby> 汉 <rp>(</rp><rt>Han</rt><rp>)</rp>

2021-06-19 14:14:59 228

原创 安卓ADB补充

此篇是最强安卓笔记的补充,主要来自《安卓群英传》的ADB部分,介绍ADB简单的使用adb version查看adb版本adb shell进入安卓内部Linuxadb install -r 应用程序路径安装应用程序adb push <local> <安卓位置>移动文件到安卓系统中adb pull <安卓位置> <local>从安卓获取指定文件adb shell input keyevent <keyCode>模拟按键事件ad

2021-06-19 14:09:54 75

原创 最强安卓笔记

经过一年的安卓学习,最后要结束了,整理一下,学过的资料包含《疯狂安卓讲义》,《安卓群英传》,《安卓高级开发》,《Android多媒体开发高级编程》和一些平常搜集到的知识点编写这个博客主要是怀念安卓开发,知识量巨多,观看需谨慎,但若所有的知识点你都很清楚,那你安卓开发也是挺棒的若你是搜索问题,搜到了这个页面建议Ctrl+F搜索一下,说不定真的有方案解决你的问题animated-vector<?xml version="1.0" encoding="utf-8"?><!--andr

2021-06-19 14:04:04 1513

原创 编写安卓音乐播放器,及其配套的桌面组件及状态栏组件

主要通过广播update广播 只有播放进度信息init广播 除了进度信息还包含,标题信息,歌曲总长信息通过onStartCommand对歌曲控制MusicService通过onStartCommand进行控制信息通过MusicState封装信息运行效果控制栏组件主界面桌面控件项目地址:https://gitee.com/shaokang123/android-music-components注意因为写的是一个测试项目,只有part3文件夹中是相关文件,其他是一些其他小测试

2021-06-18 20:46:22 233

原创 简化DTO开发

日常开发中,我们常常要写DTO,但是这玩意写起来非常麻烦,而且封装起来也费劲。我就想稍微解决一下这个问题。最开始我想的是转换为map进行JSON传输相关注解BeanField主要用于起别名或忽略属性Warp用于声明该属性非基本属性,也可以起别名@Data@AllArgsConstructor@NoArgsConstructorpublic class Char { private Integer id; private String name; @Warp

2021-06-13 20:27:05 125

原创 自动生成假Json

平常我们写一些项目可能需要一些JSON数据用于测试,但是专门写一个项目太浪费时间,可以写一个专门根据请求表达式生成定制化数据的工程(界面写的比较朴素)默认访问,或错误处理界面为说明界面,并为预定义数据提供跳转连接每个连接页面都类似这样,用于添加基本元数据使用效果内部使用责任链,可以很轻松进行功能扩展表达式支持多层嵌套,几乎支持所有类型的json数据生成项目地址:https://gitee.com/shaokang123/my-json-plus...

2021-05-29 17:58:50 357

空空如也

空空如也

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

TA关注的人

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