自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BAT的乌托邦

一个可以沉迷于技术的程序猿

原创 [享学Feign] 二、原生Feign的注解介绍及使用示例

通过第一篇文章了解了Feign的最基础知识,作为一个有态度的程序员,我们势必要搞清楚它整个执行的脉络,了解它的执行过程和原理才算结束,这是最后最后最后进行个性化定制的基础,一切都为了“玩”嘛。 本文将讲解它原生支持的注解,毕竟Feign并不强依赖于Spring MVC,在Java环境也是可以作为...

2020-02-10 21:08:49

阅读数 134

评论数 0

原创 [享学Feign] 一、原生Feign初体验,Netflix Feign or Open Feign?

说到HTTP客户端,大家都不会感到陌生。Java自己源生的就有`java.net`包下的`HttpURLConnection`(虽然不太好用),同时优秀的开源产品更是百花齐放: - Apache HttpClient - OkHttp - Spring的RestTemplate - 说明:它基于...

2020-02-09 21:40:38

阅读数 114

评论数 0

原创 [享学Jackson] 二、jackson-core之流式API与JsonFactory、JsonGenerator、JsonParser

`jackson-core`是三大核心模块之一,并且它是核心中的核心,它提供了对JSON数据的**完整支持**。 此模块提供了最具底层的Streaming JSON解析器/生成器,这组流式API属于Low-Level API,具有非常显著的特点: - 开销小,损耗小,性能极高 - 因为是Low-L...

2019-12-29 01:22:13

阅读数 380

评论数 0

原创 [享学Jackson] 一、初识Jackson -- 世界上最好的JSON库

Jackson是一个简单的、功能强大的、基于Java的**应用库**。它可以很方便完成**Java对象**和**json对象(xml文档or其它格式)**进行互转。Jackson社区相对比较活跃,更新速度也比较快。Jackson库有如下几大特性: - 高性能,稳定:低内存占用,对大/小JSON串,...

2019-12-27 23:32:24

阅读数 676

评论数 0

原创 [享学Feign] 十一、Feign通过feign-slf4j模块整合logback记录日志

作为一个程序员,说到日志的重要性,怎么强调都不过分。然而每个流行框架都有它内置使用的日志库,比如:Spring使用`commons-logging`(这是Spring的唯一**强外部依赖**,其它的依赖均非强制)记录日志。 Feign它自己提供了一个日志抽象`feign.Logger`用于记录日...

2020-02-15 20:45:22

阅读数 56

评论数 0

原创 [享学Feign] 十、Feign通过feign-jackson模块天然支持POJO的编码和解码

上文介绍了Feign的Client相关模块,体验到Feign核心内容的高扩展性同时,亦能明显感觉到其子模块其实为对**Feign核心功能**的延伸,让其更能适应复杂的生产环境要求。 本文将介绍它的另一个实用模块:`feign-jackson`。它能解决我们平时工作中非常大的一个痛点:Feign只...

2020-02-15 11:57:05

阅读数 112

评论数 0

原创 [享学Feign] 九、Feign + OkHttp和Feign + Apache HttpClient哪个更香?

前八篇文章介绍完了feign-core核心内容,从本篇开始将介绍它的“其它模块”。其实核心模块可以独立的work,但是不免它的能力偏弱,比如只能编码字符串类型、只能解码字符串类型,默认使用`java.net.HttpURLConnection`作为HC... 本篇将介绍它的第一个模块:Clien...

2020-02-14 22:10:49

阅读数 58

评论数 0

原创 [享学Feign] 八、Feign是如何生成接口代理对象的?Feign实例的构建器Feign.Builder详解

一步步稳扎稳打,终于到了该研究平时接触的API:`feign.Feign`本身。 `feign.Feign`它是最上层的API,是使用者直接使用的对象,它能完成对接口生成动态代理对象,从而很方面的让你面向接口编程,而不用太过例会Feign内部的实现细节。 如果说前面7篇都是在打基础,那么它们均是...

2020-02-13 23:47:56

阅读数 217

评论数 0

原创 [享学Feign] 七、请求模版对象RequestTemplate和标准请求对象feign.Request

通过前几篇文章,能够发现有个对象我们会频繁打交道,它就是Feign的请求模版对象`RequestTemplate`。 `feign.template.Template`以及它的4个子模版都已经了解过了,体会到了模版设计的**高扩展性和高弹性**。而此处的`RequestTemplate`稍有不同...

2020-02-13 18:00:58

阅读数 99

评论数 0

原创 [享学Feign] 六、原生Feign的解码器Decoder、ErrorDecoder

上篇文章介绍了Feign的编码器Encoder,本篇继续了解它的解码器`Decoder`,以及错误解码器`ErrorDecoder`。 编码器作用于Request,那么解码器作用于Response,用于解析Http请求的响应,提取有用信息数据。

2020-02-13 01:12:17

阅读数 143

评论数 0

原创 [享学Feign] 五、原生Feign的编码器Encoder、QueryMapEncoder

编码和解码的概念最初是出现在硬件范畴,最后引申到软件领域,它和加密、解密很多时候是一组同义词。下面这段解释摘抄自百科: - 编码器:将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。 - 功能:转换信号形式 - 解码器:是一种能将数字视音频数据流解码还原成模拟视音...

2020-02-13 00:21:21

阅读数 115

评论数 0

原创 [享学Feign] 四、原生Feign的核心API详解(二):Contract、SynchronousMethodHandler...

本文接着上篇文章,接着介绍Feign的核心API部分。革命尚未统一,同志仍需努力。 虽然核心API不可能100%全部讲到,但大部分均已cover,对后续的学习几无障碍,欢迎一起来造...

2020-02-12 10:49:02

阅读数 128

评论数 0

原创 [享学Feign] 三、原生Feign的核心API详解(一):UriTemplate、HardCodedTarget...

前两篇文章站在使用的角度介绍了源生Feign,相信读过的话都知道如何使用了。那么接下来就要动动真格,扒开内裤看看里面到底是什么东西。 本文将着重了解Feign的核心API,有点像啃API、啃源码的意思,所以可能相对枯燥、难懂,所以需要坚持。因为学习起来虽然枯燥,但意义却是巨大的,正所谓“上天不会...

2020-02-11 21:59:02

阅读数 73

评论数 0

原创 [享学Jackson] 二十二、Jackson与Fastjson的恩怨情仇(完结篇)

毋庸置疑,Jackson是全球范围内最为流行的JSON库,但`Fastjson`背靠大树阿里,在中国积累了不少“忠粉”,流行程度也不容小觑,甚至大有中国最流行的JSON库之趋势。 对于`Jackson与Fastjson`是很多同学茶余饭后常讨论的小话题,毕竟正面相争必有些江湖恩怨。本文**不会带有...

2020-02-07 15:22:09

阅读数 526

评论数 0

原创 Spring Boot升级到2.x,Jackson对Date时间类型序列化的变化差点让项目暴雷【享学Spring Boot】

在阅读本文之前,建议你已经掌握了`Jackson`的知识以及它的`Spring、Spring Boot`下的集成和运用。 > 说明:若不熟悉Jackson,请务必参阅我的专栏`[享学Jackson]`[(单击这里电梯直达)](https://blog.csdn.net/f641385712/...

2020-02-06 18:08:11

阅读数 435

评论数 0

原创 [享学Jackson] 二十一、Spring Boot下的Jackson --- JacksonAutoConfiguration自动配置

相信到了这里,你应该清楚本专栏讲解Jackson的脉络:**Jackson基础 -> Jackson进阶 -> Spring MVC下的Jackson -> Spring Boot下的Jackson**。 不同于大多快餐式技术博客文章:只说其表,不道其里。上来就在`Spring ...

2020-02-05 16:42:03

阅读数 290

评论数 0

原创 [享学Jackson] 二十、Spring MVC下的Jackson --- MappingJackson2HttpMessageConverter

`Spring MVC`是通过`HttpMessageConverter`消息转换器来与Jackson库整合的(其实只是使用了Jackson库来解析JSON格式的消息而已)。需要注意的是:它默认支持的不仅仅只有Jackson,还有JavaEE标准技术的`javax.json.bind.Jsonb`...

2020-02-04 01:14:13

阅读数 114

评论数 0

原创 [享学Jackson] 十九、Spring下使用ObjectMapper的正确姿势 --- Jackson2ObjectMapperFactoryBean

Spring作为现代Java企业级应用的实际标准,什么组件(中间件)都需要跟它“有一腿”。因此,自然我们需要知道在Spring下如何正确使用`ObjectMapper`。 上篇文章详细介绍了Jackson和Spring容器深度整合的方式,并且从API 原理层面了解到了深度整合的细节。本专栏开始我...

2020-02-02 20:59:05

阅读数 321

评论数 0

原创 [享学Jackson] 十八、Spring容器深度整合Jackson的桥梁之SpringHandlerInstantiator

上篇文章介绍了"spring-web整合Jackson源码解析之`Jackson2ObjectMapperBuilder`",它是`Spring`为开发者提供的一个便捷构建`ObjectMapper`实例的构建器工具。Spring内部自己没有使用,但推荐开发者在Spring环境...

2020-02-02 17:19:01

阅读数 301

评论数 2

原创 [享学Jackson] 十七、spring-web整合Jackson源码解析之Jackson2ObjectMapperBuilder

上一篇文章介绍了`Jackson`在`Spring MVC`中的使用,并且在**应用层面**重点讲述了它对新、老时间类型的处理表现,理论上对你实际工作会有不小帮助。 你可能对它的原理也会感兴趣,从本篇文章开始将用几篇文章的篇幅,从原理、源码层面进一步阐述`spring-web`对`Jackson...

2020-01-30 19:27:53

阅读数 200

评论数 0

原创 [享学Jackson] 十六、Jackson在Spring MVC中的使用之Date、JSR310时间类型的处理

由于我们很少(并不代表没有)单独去使用Jackson库,所以从此篇文章开始聚焦于更具有实践意义的场景:Jackson在Spring生态下的运用。 虽然现在`Spring Boot`非常流行,但我并不会一上来就向大家介绍更加工程化的它。因为`Spring Boot`仍还是构建在Spring之上的应...

2020-01-25 23:18:59

阅读数 776

评论数 0

原创 [享学Jackson] 十五、第三方模块Module的深度实践:JavaTimeModule、JSR310Module、ParameterNamesModule、Jdk8Module

本专栏的第一篇文章就概括性的介绍了Jackson繁荣的生态:除了三大核心模块之外还存在非常多的第三方模块来为`Jackson`附加提供强大的能力。有官方主导维护的模块,当然也有第三方社区自主维护的Module。 上篇文章讲解了Jackson对模块的管理和运行原理,那么本文将站在实用的角度,选取三...

2020-01-24 16:17:28

阅读数 256

评论数 0

原创 [享学Jackson] 十四、深入理解Jackson的Module模块化设计及原理分析

模块化定义:解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。它一般有如下特点: - 可被管理 - 可插拔 - 工作模式具有一定独立性、隔离性 - **可以有依赖模块** 模块化,对于我们程序员来说是一个既熟悉又陌生的概念,比如`Java 9`最大的一个F...

2020-01-21 17:48:22

阅读数 354

评论数 0

原创 [享学Jackson] 十三、jackson-annotation注解模块全解析及Jackson注解大全

`Jackson`之所以流行得益于它强大的模块化设计,以及它提供的强大能力。而支撑它强大能力的很大一部分原因是得益于它完善的注解模块:**它提供了非常多的注解,可以让你在运行期“个性化控制”你的序列化/反序列化行为,从而具有非常高的弹性**。 前面花了好几篇文章大篇幅介绍`Jackson`的`F...

2020-01-20 21:31:13

阅读数 535

评论数 6

原创 [享学Jackson] 十二、jackson-databind反序列化之ObjectMapper反序列化原理、JsonDeserializer反序列化器全解析

前面两篇文章花大篇幅介绍了序列化、序列化器以及`ObjectMapper`序列化的原理,相信认真品读过的你对序列化/反序列化方面已经有比较全面的认识了。 本篇文章作为前两篇的**姊妹篇**,将介绍反序列化、`JsonDeserializer`反序列化器的相关内容。该文不会像前两篇讲述得那么详细,...

2020-01-19 20:31:23

阅读数 477

评论数 0

原创 [享学Jackson] 十一、jackson-databind之JsonSerializer序列化器全解析

序列化 (Serialization):将对象的状态信息转换为可以存储或传输的形式的过程。 该概念可以理解为如下两个两点: - 在序列化期间,对象将其当前状态写入到**临时或持久性存储区**(内存or硬盘) - 以后,可以通过从存储区中读取或反序列化对象的状态,**重新创建该对象** ...

2020-01-14 17:41:23

阅读数 266

评论数 0

原创 [享学Jackson] 十、jackson-databind序列化之ObjectMapper序列化原理、序列化器匹配原理

序列化/反序列作高层API的核心概念,重要程度可见一斑。但是关于序列化/反序列化是什么,大多数小伙伴其实停留在概念阶段,并不知其内幕。 > 说明:本文讨论的序列化/反序列化自然是是关注JSON方面的 学习本专栏定位,就是要把自己放在专业人士的位置,要能实现Jackson的高级定制。而若想具...

2020-01-13 21:41:47

阅读数 1567

评论数 0

原创 [享学Jackson] 九、jackson-databind数据绑定序列化/反序列化配置之SerializationConfig、DeserializationConfig

说到JSON库,必然离不开序列化和反序列的概念。上篇文章已经介绍了解了数据绑定的基础配置,本篇将继续讲解更加偏向于实战的:序列化/反序列化配置之`SerializationConfig、DeserializationConfig`。 小提示:因为文章内容的讲述是按顺序的,因此建议看本文之前确保已...

2020-01-05 23:05:21

阅读数 261

评论数 0

原创 [享学Jackson] 八、jackson-databind数据绑定基础配置之BaseSettings、MapperConfig、MapperConfigBase

通过前几篇文章的描述,我们了解到了Jackson它在各个层次上的Feature特征的含义,甚至实现的原理。从本文开始,将从实战出发,去看看如何运用到这么多特征配置,并且如何定制和配置他们。 Jackson的底层流式API逻辑上相对简单,并且就刚刚在上篇文章以`JsonFactory`为例详细介绍了...

2020-01-05 16:48:45

阅读数 331

评论数 0

原创 [享学Jackson] 七、Jackson使用bit位运算来开启/禁用Feature的原理解析

前面几篇文章介绍了Jackson库针对不同层次提供的多个Feature特征,这些特征能让使用者可以在不需要理解内部实现的情况下,控制/参与到JSON内部读/写规则。 Feature是Jackson库非常重要的一个概念,**它是使用者和JSON续写规则打交道的窗户** 。作为单纯的使用者来说,其实...

2020-01-04 21:50:34

阅读数 145

评论数 0

原创 聊聊Java中的位运算:与、或、非、异或、左移、右移、无符号右移【小家Java】

提及位运算,相信对绝大多数Java程序员是感觉既陌生又熟悉的。陌生是因为你大概率没有去真实的使用过,熟悉是有时在看些开源框架(或者JDK源码)时会时长看到有使用的地方(譬如Jackson/Fastjson这些JSON库都大量的使用了位运算)。 当然,不能“流行”起来是有原因的:不好理解,不符合人...

2020-01-04 02:18:08

阅读数 472

评论数 9

原创 [享学Jackson] 六、控制Jackson行为的特征们之MapperFeature、SerializationFeature、DeserializationFeature

Jackson工具库之所以流行,绝不是因为它有很高的性能表现,而是它拥有更好用的API:高层API。正所谓能够流行开来的技术一定是不太需要动脑子的,否则它不可能流行起来。在Jackson里,`ObjectMapper/JsonMapper`就承担了这样的角色,它甚至被称为和用户打交道的"...

2020-01-02 22:57:52

阅读数 185

评论数 0

原创 YourBatman感悟到的2019关键词:裁员、技术驱动、分享精神、能力边界

2019年注定会在历史的长河里被记下来,因为不仅对互联网而且对各行各业来说对它都是极不平静的一年,有喜事如京张高铁的顺利通行、北京大兴国际机场的落成,当然更多的是那些不平坦:中国男篮家门口折戟世锦赛、经济形势下滑、暴力裁员… 作为一个遵纪守法的四有好公民,我不敢更没能力去对如上一些宏观现象评...

2019-12-31 16:48:44

阅读数 1288

评论数 15

原创 [享学Jackson] 五、控制Jackson行为的特征们之JsonWriteFeature、JsonReadFeature

上篇文章介绍了`JsonGenerator.Feature、JsonParser.Feature`这两个内部类的Feature特性,可以发现自`2.10`版本后,大部分特性都被标记为了`@Deprecated`过期了,可以思考框架的设计者出于什么原因为何需要这么做呢? 本文将去了解她们的替代品:...

2019-12-30 17:48:21

阅读数 294

评论数 6

原创 [享学Jackson] 四、控制Jackson行为的特征们之JsonFactory.Feature、JsonGenerator.Feature、JsonParser.Feature

Jackson在各个模块、功能点都提供了大量的钩子,让可以通过配置Feature的方式就能改变读/写的行为,因此深入了解Jackson的xxxFeature是深入理解Jackson的必备前置知识。

2019-12-29 21:47:47

阅读数 191

评论数 0

原创 [享学Jackson] 三、jackson-databind之ObjectMapper与数据绑定、树模型

`jackson-databind`包含用于Jackson数据处理器的通用**数据绑定功能**和**树模型**。它构建在Streaming API(流解析器/生成器)之上,并使用Jackson注解进行配置。它就是Jackson提供的高层API,是开发者使用得最多的方式,因此重要程度可见一斑。 虽...

2019-12-29 16:12:36

阅读数 424

评论数 0

原创 IntelliJ IDEA 2019.3正式发布,给我们带来哪些新特性?

**千呼万唤始出来**。自从JetBrains在今年7月24日发布了IDEA 2019.2版本后,从9月份开始我便一直在关注这个版本正式版的发布。JetBrains公司9月中旬对外公布下一个主要版本 2019.3的Roadmap,而且马上就发布了第一个早期访问版本( EAP 版本),因此我一直对它...

2019-11-29 15:49:17

阅读数 10682

评论数 49

原创 web九大组件之---RequestMappingHandlerAdapter详尽解析【享学Spring MVC】

每篇一句 在没有充分的知识作为前提的情况下,即使行了万里路,也不过是邮差而已。 前言 上篇文章介绍了HandlerAdapter适配器的三种实现方式,分别实现了对"非主流"的三种控制器(Controller/HttpRequestHandler/Servlet)的适配,由于...

2019-10-24 16:32:54

阅读数 1507

评论数 0

原创 @ExceptionHandler or HandlerExceptionResolver?如何优雅处理全局异常?【享学Spring MVC】

每篇一句 你现在多学一样本事,将来就少说一句求人的话 前言 阅读上文,了解到了可以通过自定义HandlerExceptionResolver实现来处理程序异常,当然Spring MVC也内置了一些实现来对异常处理进行支持。但是作为新时代的程序员,我估计已经很少人知道HandlerExcepti...

2019-10-07 11:04:34

阅读数 549

评论数 5

原创 web九大组件之---HandlerExceptionResolver异常处理器使用详解【享学Spring MVC】

前言 任何程序都会有异常。无论你是做什么项目,对异常的处理都是非常有必要的,尤其是web项目,因为它一般直接面向用户,所以良好的异常处理就显得格外的重要。Spring MVC作为如此优秀的web层框架,自然考虑到了这一点,因此它从首个版本便提供了异常处理器HandlerExceptionResol...

2019-10-01 13:34:42

阅读数 350

评论数 0

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