jackson和lombok奇怪的序列化分析
问题
一个这样的类
123456789101112package com.example.demo;import lombok.Data;@Datapublic class AnyParams { private String eValue; private String target;}
这里有两个属性,eValue,和target,但是eValue传入的参数,后端是接收不到的这是为什么呢?
然后我这么来测试
12345678910public static void main(String[] args) { AnyParams anyParams = null; try { anyParams = new ObjectMapper().readValue("{\"eValue\" : \"1\",\"target\":\"1\"}", AnyParams.class); & ...
微服务的常见体系
01 常见的微服务系统架构图
02 微服务的发展 微服务的概念最早是在 2014 年由 Martin Fowler 和 James Lewis 共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。
单体应用 早些年,各大互联网公司的应用技术栈大致可分为 LAMP(Linux + Apache + MySQL + PHP)和 MVC(Spring + iBatis/Hibernate + Tomcat)两大流派。无论是 LAMP 还是 MVC,都是为单体应用架构设计的,其优点是学习成本低,开发上手快,测试、部署、运维也比较方便,甚至一个人就可以完成一个网站的开发与部署。
结构如下
单体架构的应用比较容易部署、测试, 在项目的初期,单体应用可以很好地运行。然而,随着需求的不断增加, 越来越多的人加入开发团队,代码库也在飞速地膨胀。慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。
系统的复杂度越来越高,代码越来越臃肿
可维护性 ...
整数反转
//给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。//// 如果反转后整数超过 32 位的有符号整数的范围 [−2³¹, 231 − 1] ,就返回 0。//假设环境不允许存储 64 位整数(有符号或无符号)。//////// 示例 1://////输入:x = 123//输出:321////// 示例 2://////输入:x = -123//输出:-321////// 示例 3://////输入:x = 120// ...
frp教程
一、为什么使用frp路由器搬到了一个只有内网ip,甚至公网ipv6的都没的,以往的DDNS方案就失效了,所以,目前可以选择的方案,就是内网穿透方案了,刚好腾讯云有一台闲置的轻量云服务,这里就利用起来
二、FRP简介frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
选用FRP的原因
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。
采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。
代理组间的负载均衡。
端口复用,多个服务通过同一个服务端端口暴露。
支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。
多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 fr ...
如何实现公网访问路由器-内网穿透教程
接上篇教程,现在由于大部分的运营商已经不再分配公网的ipv4地址,大部分的结构其实是这样的
由于局域网的地址是不能在公网直接访问的,那么我们要怎么做才能访问公网呢?
有两种方式,下面我先介绍第一种
通过VPN 目前比较好用的可以说是zerotier了
说一下简单的配置过程吧
ZeroTier账号注册1、百度搜索ZeroTier,找到ZeroTier官网,默认第一个就是,注意鉴别是否为官方的地址。
2、进入主页之后,点击 sign up,进入注册页面
3、在注册页面默认是英语,英语不好的可以使用翻译网页,按照表格提示填写相对应信息完成注册。
4、注册以后,填写的邮箱会收到一封激活的邮件,点击邮箱里面的链接激活账号。
5、账号注册成功以后,点击邮箱链接跳转到主页,或者在官方首页的右上角选择 Log in输入相关账号信息进行登录。
6、下面是注册成功首次登录的界面,默认已经创建好了一个网络,可以直接使用。
7、点击已经创建好的的网络,进入配置界面,我们可以对相关选项进行修改,例如网路名称、局域网IP等,小白建议直接保持默认,最重要的就是这串 NetWork ID ,在后续组 ...
个人目前的博客是如何搭建起来的
文档管理
借助于git的版本管理,进行文档管理,这里选用coding https://coding.net/
图床管理为了在公网链接都能访问到图床 这里选用了统一的图床, 阿里云OSS存储当做图床的管理工具,通过配置域名等将图床链接标准化如下https://f.bytedance.press/img/1630227033308-d2cc90e49f11aedbb1deab79b61f5915.png
以个人域名的二级域名 f.bytedance.press为图床域名
博客平台这里选用了hexo静态页面作为博客平台,通过腾讯云和coding的关联,可以实现分支推送master或者特定分支直接发布新内容 https://bytedance.press
腾讯云发布平台:https://cloud.tencent.com/document/product/1450/58346
写作工具
Typora markdown的编辑工具
picGO 图片上传工具,可以通过配置和Typora完美结合使用,复制粘贴图片,或者上传图片,自动传到我们的图床服务器
目前这套就是简单的博客发 ...
如何破解移动光猫实现桥接和小米路由器ax6s刷入第三方固件
一、前言
因为新搬的地方的网速很不稳定,打游戏也时常卡顿,于是就买了个路由器(小米ax6s)。现在需要做两件事情
使用桥接用路由器拨号连接,提升网络的稳定性
刷入第三方系统,实现更多的路由器功能
二、如何设置光猫的桥接
首先要获取光猫的超级密码,用来改成桥接
然后需要知道宽带的账号和密码
刚好,以上两点都能在光猫的telnet 账号里拿到。
是不是觉得可能拿到root账号的密码很难,我们首先登录正常的user账户,账号和密码在光猫的背面标签上登陆地址1http://192.168.1.1/
然后输网页地址输入
1http://192.168.1.1/cgi-bin/getGateWay.cgi
然后就出现了
发现是不是很神奇,网页上直接就有root的账号和密码,接下来就简单了,我们开始telnet 登录
输入账号和密码
1telnet 192.168.1.1
然后就是输入
1root
再输入刚才拿到的密码
进入界面
然后在配置文件下查找
首先是超级管理员密码:
1cat /tmp/ctromfile.cfg |grep "CMCCAdmi ...
提交hutool issue
最近在使用hutool的工具包的时候,发现了一个问题。eanUtil.beanToMap(xx, true, true),使用转换为下划线模式, 输入的字段为customerNickV2, 输出的字段为customer_nick_V2,这种类型的输出在别的json包里是customer_nick_v2。
状况如下:
代码如下
123456789101112131415161718192021222324252627package com.example.demo;import cn.hutool.core.bean.BeanUtil;import lombok.Data;import java.util.Map;public class Test { @Data static class Person { private Integer num; private String name; private String customerNickV2; } public static void ...
Elasticsearch(1)
Elasticsearch中的核心概念1.1 索引 index一个索引就是一个拥有几分相似特征的文档的集合。比如说,可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字 1.2 映射 mappingElasticSearch中的映射(Mapping)用来定义一个文档mapping是处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认 值、分词器、是否被索引等等,这些都是映射里面可以设置的 1.3 字段Field 相当于是数据表的字段|列1.4 字段类型 Type 每一个字段都应该有一个对应的类型,例如:Text、Keyword、Byte等 1.5 文档 document 一个文档是一个可被索引的基础信息单元,类似一条记录。文档以JSON(Javascript Object Notation)格式来表示; 1.6 集群 cluster 一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起ᨀ 供索引和搜索 ...
leecode-110-平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:true
示例 2:
输入:root = [1,2,2,3,3,null,null,4,4]
输出:false
示例 3:
输入:root = []
输出:true
提示:
树中的节点数在范围 [0, 5000] 内
-104