Hcy Blog

保持激情,只有激情,才有动力

netty将channel设为自动读取

​​ 是这样的一个小技巧,这是我在写ss时学到的,有时候要实现私有协议需要将netty设为非自动读取,等前面工作处理好了在转变成自动读取。​ 要实现channel数据的转发工作,第二个channel未创建完成时是不能读取第一个channel内数据的,所以我们经常将第一个channel设为不自动读取。先前我看netty例子里有这样的写法,转换数据 out.writeAndFlush(msg).addListene...

h2数据库初探

首先是这个h2数据库的官网http://www.h2database.com当前最新的maven: <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version&...

springboot Maven打包

今天使用maven命令打包springboot项目成可执行jar,总是无法成功。表现为打包的jar包只有项目本身的Class,不包含依赖。但是把项目文件复制到其他目录就能正常使用。后来发现原因是这这样。项目是一个多Module项目,父pom中这样写的。1112131415161718192021 <build> <pluginManagement> ...

netty遇到的一个bug

​ 启动netty报如下异常,工具异常提示能确定重复使用Handler导致的,但我检查了代码不知道是哪里重复使用的。111213141516171819202122io.netty.channel.ChannelPipelineException: com.hcy.FrpsHandler is not a @Sharable handler, so can't be added or removed multiple t...

netty监听本地端口引发的问题

​ 昨天用netty写了一个内网穿透工具,服务器用的时阿里云,本地测试没问题后打算放服务器上测试一下,结果就是不能访问。​ 首先阿里云防火墙端口也打开了,首先怀疑阿里云防火墙配置不能立刻生效,结果等了十几分钟还是不行,然后又换了一台端口本来已经打开了的服务器,结果还是不行。​ 真是奇怪?能确定第二台服务器的端口是打开了的,也能确定程序在本地跑是正常的?????????​ 最后竟然是因为netty绑定本地端口使用的是bind(“127.0.0.1”,9000),如果将127.0....

springboot配置MappingJackson2HttpMessageConverter最佳实践

​上篇讲了,SpringMvc是如何将返回值转成Json的,默认情况下Springboot是如何配置HandlerAdapter的,如何根据配置文件影响到ObjectMapper的创建的。下面讲一讲如何做才是最佳实践,如何做能满足需求。1. 最大限度使用Springboot的自动配置如果我们想最大限度使用Springboot,且想修改接口返回Json格式等,那么我们可以在配置文件中配置常用的配置。我们在配置文件里打出spring.jackson,ide会给我们提示,...

springboot如何自动配置MappingJackson2HttpMessageConverter

​springboot开箱即用,写一个Controller,再配合RestController,无需其他配置,就能直接返回Json到前台,那他是怎么做到的呢?,如何定制它?,因为只靠默认是不能满足我们的需求的,花了点时间看下源码,进行如下总结。springmvc如何将返回值转成json的我们知道,当请求到达DispatchServlet时,该servlet会查找到对应的HandlerMapper,然后查找与之适配的HandlerAdapter。使用HandlerAdapter....

安卓手机usb共享网络导致window10底部卡住

​ 家里网络不好,手机开热点不稳定,所以使用手机的usb共享网络供电脑上网,但在window10下会导致底部状态栏卡死的现象,使用下面的方法能够解决问题。

记一次跨域问题

springboot项目,后台已经配置好允许跨域,但前台仍是报跨域问题无法通过,追踪源码+debug发现原因,这里记录一下。案发场景: springboot项目。 已重写WebMvcConfigurationSupport的addCorsMappings(CorsRegistry registry) 方法,并添加了允许跨域的逻辑。 跨域的原因是在http协议下发送https请求,引起的跨域。找到原因:查看日志,发现springboot的 DefaultCors...

记一次Jackson引发的血案

记一次Jackson引发的血案一昨天修改项目,想用Jackson逐渐替换项目中使用的Fastjson,项目较旧,已经配置了FastJsonHttpMessageConverter用于springmvc的返回值序列化,这是前提。二既然是用了Jackson解析json,有几个接口返回值里里有JsonNode类型,这是jackson的类,FastJson无法序列化,所以配置文件里添加了MappingJackson2HttpMessageConverter替代FastJsonHtt...