2022-07-05 杂谈 型变浅析 本文将结合示例代码简要介绍范型(Generics)及其可变性(Variance)的背景、定义,以及在Java与Kotlin中的不同表现,进而探讨类型擦除(Type Erasure)与Spring对范型依赖的处理(Generics Dependency)等高级主题。 阅读全文…
2021-04-19 技巧 你不知道的SpringBoot (Part 1) 随着SpringBoot日渐流行,有关SpringBoot的各类“心经”、“秘籍”、“从入门到精通”之类的文章或者书籍琳琅满目、层出不穷,本文无意与这些典籍争锋,而是从实际应用出发,结合官方文档,收集并整理一些不常见却很有用的知识点,同时蹭一下You Don’t Know JS Yet的热度,姑且就叫它你不知道的SpringBoot。 阅读全文…
2020-10-05 实践 Kotlin + Spring Cloud Stream构建实时消息系统 作为一门新兴的现代化编程语言,Kotlin正获得广泛的关注,Spring社区也将支持Kotlin语言作为下一阶段的重要工作,甚至抛出了Spring Loves Kotin和A Match Made in Heaven这般暧昧的论调。本文暂不去讨论Kotlin语言的细节,而是通过使用Kotlin和Spring Cloud Stream构建实时消息系统来领略一番Spring Loves Kotlin的魅力。 阅读全文…
2020-08-29 技巧 小论Spring中@Bean的Lite Mode @Bean注解在现代化Spring应用中得到了广泛的应用,在大多数场景下,@Bean是配合@Configuration注解一起使用的,但这并不意味着@Bean必须配合@Configuration使用,反之,它可以与@Service、@Component等Bean声明注解一起使用,这种用法与配合@Configuration使用有什么区别呢?什么是@Bean的Lite Mode呢?本文将给出答案。 阅读全文…
2020-06-12 杂谈 再论Spring依赖注入 依赖注入(Dependency Injection)是Spring Framework最核心的概念之一,通常来说,依赖注入主要分成构造注入(Constructor-based Dependency Injection)与setter注入(Setter-based Dependency Injection)两种类型,本文会结合Spring Framkework的发展以及项目中的具体应用,在封装性(Encapsulation)、不可变性(Immutability)、安全性(Security)以及循环依赖性(Circular Dependencies)等方面来重新探讨这两种依赖注入方式,进而总结出在“新时代”的背景下,如何适当地选择。 阅读全文…
2020-05-03 杂谈 茴字的N种写法 在鲁迅的名篇《孔乙己》中,有这样一个桥段,孔乙己问作者是否知道茴香豆的“茴”字,有四种写法,用于讽刺孔乙己这类落魄文人的迂腐。我们在coding时,为实现某一逻辑,也会存在各种各样的方案,而每种方案的背后,除了有各自的特点之外,也或多或少与给出这些方案的人的技能、经历、思考方式有关,本文试图以亲身经历的一个小故事,来探究编程领域内茴字N种写法背后的故事。 阅读全文…
2020-04-08 实践 简单实现微软Teams的logback appender 不得不承认,微软的Teams聊天软件借(chao)鉴(xi)了很多Slack的理念,凭借其庞大的用户群体以及产品生态优势,使Teams在短时间内得以快速发展和推广。与其他消息工具类似,Teams也提供了webhook,使用它可以很容易地拓展Teams的功能,使其不仅限于一个聊天软件,更可以使其变成一个消息门户。今天我们就实现一个logback appender,使Teams可以显示应用程序的报警通知。 阅读全文…
2020-04-06 杂谈 2020,重启博客于早春 早在2017年,就申请了这个域名,也写下来了第一篇hexo博客,记得是使用Java 8 Stream来打印乘法口诀的,说来惭愧,之后再没有了更新。随着职业生涯的推进,感觉还是应该在某处记录下经历过的点点滴滴,也不枉费将所有的青春年华大都贡献给了架构和代码,希望自己笔耕不辍,能多留下一些足迹。 阅读全文…