自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

架构师:通透,才能写出好代码!

也许当我老了,也一样写代码。不为别的,只为爱好。

  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 ThreadLocal垮线程池传递数据解决方案:TransmittableThreadLocal【享学Java】

企业不是慈善机构:创造利润是你存在的核心价值。目录前言正文InheritableThreadLocal的局限性Thread#init方法探究TransmittableThreadLocal如何实现?使用场景总结声明前言在 上篇文章 了解到了,ThreadLocal它并不能解决线程安全问题,它旨在用于传递数据。但是它能成功传递数据比如有个大前提:放数据和取数据的操作必须是处于相同线程。即...

2020-02-29 23:51:37 4652 4

原创 Spring注入的成员属性HttpServletRequest是线程安全的吗?【享学Spring MVC】

我们知道一个`Http`请求就是一个`Request`对象,Servlet规范中使用`HttpServletRequest`来表示一个Http请求。然而在`Spring MVC`中,官方并不建议你直接使用`Servlet`源生的API,如常见的`HttpServletRequest/HttpServletResponse`等,因为官方认为`Servlet`技术只是web的落地实现之一,它并不希望你使用具体API而和某项技术耦合,比如从`Spring 5.0`开始就出现了web的另一种实现方式:Reactiv

2020-02-29 21:47:06 6957 7

原创 ThreadLocal能解决线程安全问题?胡扯!本文教你正确的使用姿势【享学Java】

`ThreadLocal`:线程 + 本地 -> **线程本地变量**(所以说我觉得它取名叫`ThreadLocalVariable`获取还更能让人易懂些),它的出镜率可不低。虽然写业务代码一般用不着,但它是开源工具的常客:用于在**线程生命周期内**传递数据。有的人说,每看一遍`ThreadLocal`都会有新的感受,这其实是比较诡异的现象,因为我认为“真理”是不应该经常变的(或者说是不可能变化的)。我自己百度了一波,关于`ThreadLocal`的文章满天飞,有讲使用的亦有讲原理的,鱼龙混杂。其中有

2020-02-29 18:05:21 10410 33

原创 [享学Hystrix] 四、Hystrix插件机制:SPI接口介绍和HystrixPlugins详解

`Hystrix`提供了插件机制(SPI机制)来提升自身的扩展性,提高弹性。这里所指的插件包括:- `HystrixConcurrencyStrategy`:获取并发相关类- `HystrixEventNotifier`:事件通知类- `HystrixMetricsPublisher`:度量信息类- `HystrixPropertiesStrategy`:Properties配置类- `HystrixCommandExecutionHook`:HystrixCommand回调函数类- `Hyst

2020-02-27 16:41:46 1577

原创 [享学Hystrix] 三、Hystrix配置之:全局配置和实例配置HystrixCommandProperties

上篇文章介绍了`Hystrix`和`Archaius`的整合,对深入了解`Hystrix`内部的属性配置打好了基础。对于属性配置,程序员们的感受可能是可能既爱又恨,因为那些浩如烟海的配置项确实可能已经超过了你的脑容量。但越是这样的工作,就越不可能靠强记的,而是应掌握其规律,学会查“字典”才是永恒之道。`Hystrix`的属性配置不在少数,但它管理得非常的好,因此本文将从**全局配置和实例配置**作为切入点,授之以渔帮小伙伴们**从根本上掌握`Hystrix`的配置**相关知识点。

2020-02-27 01:23:38 3597

原创 [享学Hystrix] 二、Hystrix属性抽象以及和Archaius整合实现配置外部化、动态化

了解了`Hystrix`的基本情况后,接下来将逐步深入到它的使用以及原理上。作为一个流行的开源库,扩展性、设计的弹性是必不可少的,而所谓弹性一般都通过外部化配置来实现。`Hystrix`也不例外,它支持非常非常多的配置选项,对于多如牛毛的配置项,管理起来、统一实现动态化亦是一个必备的设计要素。本文将介绍`Hystrix`的属性抽象,以及和`Archaius`的整合来实现配置的外部化、以及动态化~

2020-02-26 22:11:36 1881 1

原创 [享学Hystrix] 一、Hystrix断路器:初体验及RxJava简介

`Hystrix`也是`Netflix OSS`的一部分,它是一个断路器,用于**保护你的微服务**。随着微服务的流行,熔断作为其中一项**很重要的技术**也广为人知。当微服务的运行质量低于某个**临界值**时(静态阈值的实现方式),启动熔断机制,暂停微服务调用一段时间,以保障后端的微服务不会因为持续过负荷而宕机(熔断、限流)。在分布式系统中,单个应用通常会有多个不同类型的外部依赖服务,**内部通常依赖于各种RPC服务(当然也可能是Http实现),外部则依赖于各种HTTP服务**。这些依赖服务不可避免的

2020-02-26 15:37:24 2407 2

原创 [享学Archaius] 十六、Archaius和Spring Cloud的集成:spring-cloud-starter-netflix-archaius

截止到上篇文章,其实关于`Netflix Archaius`的内容都已经讲述完了,理论上你现在应该可以没有障碍的使用它了。本来本文我是没有打算去写的,因为掌握了核心后,去集成任何技术都是不算太难的一件事。但是,但是,但是,奈何`Spring Boot/Cloud`如此之火,现在一门技术如果不谈和它的整合,都不好意思说自己出道了。基于此,本文就接着介绍下`Netflix Archaius`它和Spring Cloud的整合工程:`spring-cloud-starter-netflix-archaiu

2020-02-25 18:14:16 1724

原创 [享学Archaius] 十五、Archaius如何对多环境、多区域、多云部署提供配置支持?

在当下日益复杂的互联网云环境中,对应用APP的**灵活部署**要求越来越高:同样的一份代码在**不同环境、不同区域...**需要有不同表现(逻辑不同、性能不同...),同时高可用方面的**多机房、多云灾备**亦体现出了部署的复杂性。通过前几篇文章关于`Netflix Archaius`的学习,相信你已经完全掌握了它是如何处理组合配置、如何让属性动态化的。在它的属性抽象`com.netflix.config.Property`中,有一个非常重要的子类`DynamicContextualProperty`

2020-02-24 20:46:22 3546 3

原创 [享学Archaius] 十四、Archaius属性抽象Property和PropertyWrapper详解

上篇文章介绍了`Archaius`动态属性`DynamicProperty`,并且通过`DynamicPropertyFactory`间接的体验了一把它天生的动态性。在案例过程中,你可能已经发现,操作属性时实际与使用者打交道的并不是`DynamicProperty`或者其子类,而是诸如`DynamicIntProperty、DynamicStringProperty`这类API。那么本文将一起进入`Netflix Archaius`的属性抽象:`com.netflix.config.Property`,

2020-02-24 16:12:36 1192

原创 [享学Archaius] 十三、Archaius动态属性DynamicProperty原理详解(重要)

上篇文章了解到了`Netflix Archaius`它提供的两个支持类:配置管理器`ConfigurationManager`和动态属性支持`DynamicPropertySupport`。特别是`DynamicPropertySupport`它提供了对动态属性的支持,原理便是通过`PropertyListener`来完成。本文将深入了解`Netflix Archaius`动态属性相关内容,它用`DynamicProperty`表示一个动态k-v属性值,再结合`DynamicPropertySuppor

2020-02-23 15:20:00 2840 3

原创 [享学Archaius] 十二、Archaius配置管理器ConfigurationManager和动态属性支持DynamicPropertySupport

上面文章介绍了`Netflix Archaius`对`Commons Configuration`核心API `Configuration`的扩展实现,知道了`Netflix Archaius`依赖于`Commons Configuration`并且在其基础上做了扩展和增强。本文将继续夯实基础,聊聊它的另外两个核心API:配置管理器`ConfigurationManager`和动态属性支持`DynamicPropertySupport`。

2020-02-23 11:16:21 1336

原创 [享学Archaius] 十一、Archaius对Commons Configuration核心API Configuration的扩展实现

上篇文章体验了一把`Netflix Archaius`的使用,感受到了它对配置管理上的便捷性。或许有小伙伴会说,配置管理上它和`Apache Commons Configuration`功能上有点重叠,其实不然。他俩的关系不是功能重叠,而是`Netflix Archaius`是对`Apache Commons Configuration`的一种延伸,并且前者依赖于后者的实现。因此本文将探讨下`Netflix Archaius`它对`Apache Commons configuration`的扩展,在A

2020-02-22 22:25:57 980

原创 [享学Archaius] 十、Archaius配置管理库:初体验及基础API详解

Netflix是一家互联网流媒体播放商,是美国视频巨头,随着Netflix转型为一家云计算公司,它也开始积极参与开源项目,并且提供了众多好用的开源产品,比如耳熟能详的就有:- `Netflix/zuul`:网关- `Netflix/hystrix`:断路器- `Netflix/ribbon`:客户端负载均衡器- `Netflix/archaius`:配置管理- `Netflix/feign`:Http客户端- `Netflix/eureka`:配置中心- `Netflix/conductor`

2020-02-22 21:01:26 1643

原创 [享学Archaius] 九、Apache Commons Configuration2.x相较于1.x使用上带来哪些差异?

`Commons Configuration`作为一个优秀的配置管理库,凭借着优秀的设计以及提供了热加载等使用功能,被不少其它组件作为基础配置管理组件使用,流行度较高。从2004年发展至今,它一共有两个大版本:1.x和2.x。这两个大版本之前因为改过包名,并且GAV坐标也不一样,因此他俩:**互不兼容,可以共存**。虽然2.x早已成为主流,但前面解释过1.x版本也有学习的意义,所以避免不了共存的情况。因此本文将从多个方面,站在使用的角度比较两者的诸多不同,让同学们可以同时驾驭。

2020-02-21 22:56:25 1648

原创 [享学Archaius] 八、Apache Commons Configuration2.x如何实现文件热加载/热更新?

成功的路上并不拥挤,因为坚持的人不多。能坚持的人不一定有成就,但要想有成就那就必须得坚持。–> 返回专栏总目录 <–代码下载地址:https://github.com/f641385712/netflix-learning目录前言正文总结声明前言正文总结声明原创不易,码字不易,多谢你的点赞、收藏、关注。把本文分享到你的朋友圈是被允许的,但拒绝抄袭。你也可【左边扫码...

2020-02-21 21:25:28 1465

原创 [享学Archaius] 七、Apache Commons Configuration2.x快速构建工具Parameters和Configurations

[上篇文章]完整的介绍了`Commons Configuration`的Builder机制,并且辅以示例介绍了如何使用。`Commons Configuration2.x`推荐我们使用Builder去构建一个`Configuration`实例,但奈何实际使用起来着实比较麻烦,怎么破?本文将介绍两个“工具类”:`Parameters`和`Configurations`,分别能够简化你对参数的构建和对Builder构建器创建过程,当然还包含一步到位的直接构建出`Configuration`实例的方法。

2020-02-21 00:44:43 956

原创 [享学Archaius] 六、Apache Commons Configuration2.x别样的Builder模式:ConfigurationBuilder

在文初已经知道:`Configuration`是最最最重要的接口,所以构建它的实例自然就非常重要。在1.x时,绝大多数情况下均使用`new`的方式来创建`Configuration`实例,而作为“更时髦”的2.x版本,显然得尽量避免出现`new`关键字,那么怎么办?这就是本文要介绍的Builder模式。`Builder`模式相信大家已经很熟悉了,虽然`ConfigurationBuilder`接口在1.x版本里也存在,但是一般情况下并不使用它。而2.x版本对它进行了全新的设计,并且提供了更多的实用子类

2020-02-20 22:50:47 949

原创 [享学Archaius] 五、Apache Commons Configuration2.x文件定位系统FileLocator和FileHandler

上一篇讲述了`Commons Configuration2.x`它全新的事件-监听基础,一方面体会到了相较于1.x的改动之大,另一方面也能感受到2.x在可扩展性方面是有所增强的。2.x作为现行的主流版本,因此本文仍着眼于它。本文将要讲述的是它的**文件定位系统**,其中最重要的两个API是`FileLocator`和`FileHandler`,需要引起关注。第一篇文章就已经介绍了`Commons Configuration`它的配置来源可以有多种,虽然并不强要求必须来自文件,但其实平时我们99%情况下

2020-02-19 09:39:47 1331

原创 [享学Archaius] 四、Apache Commons Configuration2.x全新的事件-监听机制

前面文章重点介绍了`Apache Commons Configuration1.x`的使用以及原理,作为2013就已经停更的技术,本确实没有太大必要再去学它,但就因为Netflix一直还依赖它,所以这就变成了有必要。然而作为当下的主流的2.x版本,自然也不能忽略。它几乎完全重写了1.x的代码,所以自然是不向下兼容的,并且因为包名都不一样,所以**2.x和1.x是可以共存的**。由于在实际使用中,那是`100%`推荐使用2.x版本,因此花点时间精力去了解它就变得更加具有现实意义了。本篇文章将以事件-监

2020-02-18 17:13:50 1155

原创 [享学Archaius] 三、Apache Commons Configuration事件监听机制及使用ReloadingStrategy实现热更新

[上篇文章]概要性的介绍了`Apache Commons Configuration`,并且了解了它的核心API以及使用。但它带给我们的功能还不仅于此,比如本文要讲到的事件监听机制和热更新。 **事件-监听**机制:能在“修改”(增删改)属性值的时候发送对应事件,让感兴趣的监听者执行其对应的逻辑。**热更新**这个词各位开发者肯定不陌生,在实际生产中经常会遇到有类似的需求场景。

2020-02-17 21:01:56 1475

原创 [享学Archaius] 二、Apache Commons Configuration:你身边的配置管理专家

为了给讲解Netflix的`Archaius`做铺垫,本专栏首当其冲的先拿`Apache Commons Configuration`开刷,因为它是基础,不掌握它有点寸步难行之感。`Commons Configuration`软件库提供了一个**通用的配置接口**,该接口使Java应用程序可以从**各种来源**读取配置数据。支持从一下来源来读取配置:1. **Properties属性文件**2. XML文件3. ~~Windows INI文件~~ 4. ~~属性列表文件(plist)~~ 5.

2020-02-17 20:32:30 3184

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

作为一个程序员,说到日志的重要性,怎么强调都不过分。然而每个流行框架都有它内置使用的日志库,比如:Spring使用`commons-logging`(这是Spring的唯一**强外部依赖**,其它的依赖均非强制)记录日志。Feign它自己提供了一个日志抽象`feign.Logger`用于记录日志,它并不限于具体底层实现。它内部提供了基于`java.util.logging.Logger`以及`System.err`的**基础实现**,那么很显然生产上不可能使用它们来实现日志打印。本文将介绍Feign

2020-02-15 20:45:22 3179

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

上文介绍了Feign的Client相关模块,体验到Feign核心内容的高扩展性同时,亦能明显感觉到其子模块其实为对**Feign核心功能**的延伸,让其更能适应复杂的生产环境要求。本文将介绍它的另一个实用模块:`feign-jackson`。它能解决我们平时工作中非常大的一个痛点:Feign只能编码/解码字符串类型的数据。有了它便能使得我们编码更加的面向对象,对Feign的内部处理细节更加无感~

2020-02-15 11:57:05 3460

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

前八篇文章介绍完了feign-core核心内容,从本篇开始将介绍它的“其它模块”。其实核心模块可以独立的work,但是不免它的能力偏弱,比如只能编码字符串类型、只能解码字符串类型,默认使用`java.net.HttpURLConnection`作为HC...本篇将介绍它的第一个模块:Client相关模块。我们知道,流行的开源Http库的性能均远高于JDK源生的`HttpURLConnection`,因此实际生产中**肯定是**用的三方库来发送Http请求。Feign它提供了`feign.Client

2020-02-14 22:10:49 8452

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

一步步稳扎稳打,终于到了该研究平时接触的API:`feign.Feign`本身。`feign.Feign`它是最上层的API,是使用者直接使用的对象,它能完成对接口生成动态代理对象,从而很方面的让你面向接口编程,而不用太过例会Feign内部的实现细节。如果说前面7篇都是在打基础,那么它们均是在帮你理解这篇的内容服务。那么作为最重要的一步:**生成接口代理对象**有何内幕?以及平时我们用于构建Feign的构建器`Feign.Builder`有何文章可循,本篇文章将彻底为你揭秘,帮你完整掌握Feign的核

2020-02-13 23:47:56 3005 1

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

通过前几篇文章,能够发现有个对象我们会频繁打交道,它就是Feign的请求模版对象`RequestTemplate`。`feign.template.Template`以及它的4个子模版都已经了解过了,体会到了模版设计的**高扩展性和高弹性**。而此处的`RequestTemplate`稍有不同,可以理解它是一个聚合,聚合有多种模版、参数、值从而提供转向标准请求对象`feign.Request`的能力。我们知道一个简单的实例方法`RequestTemplate#request()`就完成了模版对标准请

2020-02-13 18:00:58 9516 1

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

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

2020-02-13 01:12:17 8639 2

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

编码和解码的概念最初是出现在硬件范畴,最后引申到软件领域,它和加密、解密很多时候是一组同义词。下面这段解释摘抄自百科: - 编码器:将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。 - 功能:转换信号形式- 解码器:是一种能将数字视音频数据流解码还原成模拟视音频信号的硬件/软件设备。很多框架都存在着编码、解码动作,Feign也不例外。本专栏将连续花两篇文章,就专注于讲解Feign的编码器`Encoder`、解码器`Decoder`,以及它们是如何工作的,它对后续理解

2020-02-13 00:21:21 4758 1

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

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

2020-02-12 10:49:02 2498

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

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

2020-02-11 21:59:02 2869

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

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

2020-02-10 21:08:49 3583

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

说到HTTP客户端,大家都不会感到陌生。Java自己源生的就有`java.net`包下的`HttpURLConnection`(虽然不太好用),同时优秀的开源产品更是百花齐放:- Apache HttpClient- OkHttp- Spring的RestTemplate - 说明:它基于以上三种Client做的包装- Feign(本专栏详述)JDK源生的偏于底层且不好用,在Java9之前你几乎可以忽略它;作为老牌的`Apache HttpClient`凭借着各种优秀特征,似乎已成为了事实的标

2020-02-09 21:40:38 6264 9

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

毋庸置疑,Jackson是全球范围内最为流行的JSON库,但`Fastjson`背靠大树阿里,在中国积累了不少“忠粉”,流行程度也不容小觑,甚至大有中国最流行的JSON库之趋势。对于`Jackson与Fastjson`是很多同学茶余饭后常讨论的小话题,毕竟正面相争必有些江湖恩怨。本文**不会带有个人意见**去对比这两个大作,因为感觉自己还不够格。所以我仅作为知识的搬运工,搜集一些资料展示给大家,省得同学们跑动跑西弄得晕头转向。

2020-02-07 15:22:09 8584 8

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

在阅读本文之前,建议你已经掌握了`Jackson`的知识以及它的`Spring、Spring Boot`下的集成和运用。> 说明:若不熟悉Jackson,请务必参阅我的专栏`[享学Jackson]`[(单击这里电梯直达)](https://blog.csdn.net/f641385712/category_9625300.html),该专栏有可能是**全网最好、最全**的完整教程。本文讲述的是本人在生产上的一个真实案例,分享给大家,避免你采坑。它的大背景是项目需要从Spring Boot1.x升级到2

2020-02-06 18:08:11 3820

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

相信到了这里,你应该清楚本专栏讲解Jackson的脉络:**Jackson基础 -> Jackson进阶 -> Spring MVC下的Jackson -> Spring Boot下的Jackson**。不同于大多快餐式技术博客文章:只说其表,不道其里。上来就在`Spring Boot`环境下讲解Jackson,我觉得是不妥的,这**特别容易对小伙伴对Jackson的了解造成误导**,这是我比较可担忧的。读本文之前,我强烈建议你已经了解过**前二十篇文章**的描述和知识铺陈,因为本专栏不仅仅只希望你懂

2020-02-05 16:42:03 5082 2

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

`Spring MVC`是通过`HttpMessageConverter`消息转换器来与Jackson库整合的(其实只是使用了Jackson库来解析JSON格式的消息而已)。需要注意的是:它默认支持的不仅仅只有Jackson,还有JavaEE标准技术的`javax.json.bind.Jsonb`以及谷歌公司的`Gson`。大多数程序员很少接触过`Jackson`,是因为`Spring`把它“隐藏”得很深。知道`HttpMessageConverter`本来就很少,更何况隐藏在其之下的`Jackson`

2020-02-04 01:14:13 3610 3

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

Spring作为现代Java企业级应用的实际标准,什么组件(中间件)都需要跟它“有一腿”。因此,自然我们需要知道在Spring下如何正确使用`ObjectMapper`。上篇文章详细介绍了Jackson和Spring容器深度整合的方式,并且从API 原理层面了解到了深度整合的细节。本专栏开始我便说过:我极力推荐一个工程了只需要一个JSON库即可,而这个唯一便是Jackson。到了专栏这个节点,站在使用层面,相信你更加关心和更想知道的是**Spring下使用ObjectMapper的正确姿势 **是什么,

2020-02-02 20:59:05 4432 2

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

上篇文章介绍了"spring-web整合Jackson源码解析之`Jackson2ObjectMapperBuilder`",它是`Spring`为开发者提供的一个便捷构建`ObjectMapper`实例的构建器工具。Spring内部自己没有使用,但推荐开发者在Spring环境下使用该构建器来快速构建`ObjectMapper`实例,代替使用传统的`new`关键字。该构建器不仅可单独使用,同时也提供了钩子允许我们和Spring容器进行深度整合,从而可**使用Spring容器内的资源(包括Bean/属性值

2020-02-02 17:19:01 2749 2

YourBatman的端午节祝福:代码雨可执行jar包

一年一度的端午节到了,基于Java的AWT写了一个“代码雨”,寄托笔者对大家的祝福,这是可执行jar包,下载下来直接执行"java -jar codeRainApp.jar"即可运行看到效果

2022-06-03

空空如也

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

TA关注的人

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