neutrino-proxy
发表于|更新于
|浏览量:
千万别先给人一番赞美,再立刻给他一顿批评——马克·吐温
分享一个内网穿透项目neutrino-proxy
中微子代理(neutrino-proxy)是一个基于netty的、开源的java内网穿透项目。遵循MIT许可,因此您可以对它进行复制、修改、传播并用于任何个人或商业行为。

演示:

相关推荐
2021-08-17
fastjson全局序列化坑
偌大的城市,绵延无尽,并非是我眼见的让我停住了脚步,而是我所看不见的。——《海上钢琴师》 今天遇到这样一个问题:序列化出现了与预期不一致的效果,重现代码很简单,就返回一个list,包含几个对象 12345@GetMappingpublic Result testQueryParam(CommonDTO commonDTO) { final UserDetail userDetail = UserDetail.builder().build(); return Result.ok().data(Arrays.asList(userDetail, userDetail, userDetail));} 但可以看到我这里第一条数据是正确的,第二条开始就变成了{$ref: "$.data[0]"} 这是因为我们在使用fastjson作为mvc全局序列化框架的时候 在fastjson中,会自动检测循环引用,并且输出为fastjson专有的引用表示格式。但这个不能被其他JSON库识别,也不能被浏览器识别,所以fastjson提供了关...
2024-01-12
promisesaplus.com
产生巨大后果的思想常常是朴素的。——列夫·托尔斯泰 今天刷到一个网站: https://promisesaplus.com/ 对应的组织: https://github.com/promises-aplus/ 对应有一个开源库用来检验是否符合Promise/A+规范: https://github.com/promises-aplus/promises-tests/ 安装: 1npm install promises-aplus-tests -g 然后添加CI脚本 12345678{ "devDependencies": { "promises-aplus-tests": "*" }, "scripts": { "test": "run-my-own-tests && promises-aplus-tests test/my-adapter" ...
2023-06-20
写一个基于lambda的copyProperties(二)
谨慎比大胆要有力量的多。——雨果 书接上文写一个基于lambda的copyProperties 今天继续整一个支持其他类型的 123456789101112131415161718@Datapublic static class User { private String name;}@Datapublic static class Person { private String name;}@Testvoid testCopyProperties() { User source = new User() {{ setName("test"); }}; Person target = BeanHelper.copyProperties(source, Person.class); Assertions.assertEquals(source.getName(), target.getName());} 源码如下: 123456789101...
2024-09-09
Apache-ShenYu支持namespace功能(四)
教育的最高目标不是知识而是行动。——斯宾塞 本次适配是将几个页面的namespace选择框隐藏了,然后对data-permission数据权限配置弹框里添加了一个namespace选择框,并在内部切换namespace时候刷新表格 PR链接: https://github.com/apache/shenyu-dashboard/pull/479 隐藏namespace的逻辑很简单,首先用withRouter将react组件和dvajs的路由绑定: 1import { withRouter } from "dva/router"; 然后绑定: 1export default withRouter(GlobalHeader); 然后从props里取出当前路由 1const { location: { pathname } } = this.props; 进行判断,当不在下列路由里时,showNamespaces为true 12345678const showNamespaces = !~[ ...
2024-10-18
Apache-general邮件订阅
权威如果没有威信就不能成立。威信如果没有世俗的隔离就不能成立。——戴高乐 记载: 发邮件之前首先需要订阅 general@incubator.apache.org 邮件列表,否则邮件会被卡住无法发出。跟订阅ASF的任何邮件列表一样,你可以手动发一则空邮件(随意标题,无内容)至 general-subscribe@incubator.apache.org ,该邮件组的robot会自动引导你进行订阅。 apache 邮件指导: Tips for Apache project email contributors - Apache Infrastructure Website Apache 电子邮件信息的站点地图 Listing of ASF Mailing Lists 邮件列表 Code of Conduct 行为守则 Public Forum Archive Policy 公共论坛档案政策 Additional tips from the Apache Cocoon community 来自Apache Cocoon 社区的其他提示 How to ask Questions...
2023-09-02
TreeMap踩坑
不降志,不屈身,不追赶时髦,也不回避危险。──胡适 今天使用TreeMap踩坑了 代码如下: 12345678 @Testvoid test() { Map<Integer, Object> map = new TreeMap<>(Comparator.comparing(i -> i % 2 == 0)); map.put(2, 0); map.put(1, 0); map.put(3, 0); System.out.println(map);} 输出结果却是 1{1=0, 2=0} 这是因为Comparator里计算结果重复导致的,即便我们的key并不相同,也会被覆盖。。。 于是我们可以指定计算结果相同时策略: 123456789@Testvoid test() { Map<Integer, Object> map = new TreeMap<>(Comparator.<Integer, Boolean>comp...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog