编写一个 springboot starter 是一个很实用的需求, 特别是当想要封装一些通用的功能或配置, 以便在不同的项目中低成本复用; springboot starter 本质上是一个 maven 或 gradle 模块, 它包含了自动配置类、依赖管理和其他必要的资源;
希尔的博客
兰之猗猗,扬扬其香。不采而佩,于兰何伤?
-
-
mybatis 的框架原理
mybatis 是一个设计十分优秀的框架, 其使用 java 原生的动态代理为使用者带来了 “仅定义接口, 无需具体实现, 完成 ORM 映射操纵数据库” 的巨大便利, 成为 java 应用中最受欢迎的轻量级 ORM 框架;
本文尝试探究一下 mybatis 动态代理的实现原理, 以及其在 spring 中的引导逻辑 (但不涉及具体的 ORM 映射逻辑); -
Metaspace vs PermGen
jdk 1.7 之前 jvm 使用永久代 (PermGen) 来管理方法区, 而 jdk 1.8 之后 jvm 使用元数据区 (Metaspace) 来管理方法区, 实现了革命性得性能提升;
本文来简要梳理一下 PermGen 和 Metaspace 的区别和性能差异点; -
对 nginx 模块架构疏浅的整理
nginx 的一大设计亮点就是可拓展, 可插拔的模块化架构; 在使用的时候, 我们可以根据自己业务的需求选择合适的模块组合;
本文涉及的源码基于 nginx 1.11.2.4; -
dns 基础知识
DNS 是互联网的繁荣下隐藏在幕后的中坚力量, 为大家的网络请求提供便利并保驾护航, 学习并理解 DNS 的基础知识可以为工作及生活提供必要的便利;
本文主要梳理与 DNS 相关的常识; -
dns 的解析逻辑
DNS 是互联网的繁荣下隐藏在幕后的中坚力量, DNS 解析的逻辑控制为互联网公司容灾切流、流量调拨管控提供了有力抓手, 因此十分有必要学习并理解 DNS 的解析原理;
本文主要梳理 DNS 解析的逻辑及原理; -
markdown 的数学公式表达
markdown 虽然是一个日常工作中很常用的渲染工具, 不过若想使用 markdown 渲染一些专业而复杂的数学公式, 对应的表达式还是不太容易记住的, 本着好记性不如烂笔头的原则, 本文就记录一下常用的数学公式的 markdown 表达;
-
HashMap 精妙的设计细节
HashMap 可能已经被各大技术博文讲烂了, 在各种面试中也是频繁被问到; 本文不会再把前辈们的话复述一遍, 而是根据我的面试经历和一些使用心得, 总结一下 HashMap 源码中一些极少被注意到 (但仔细研究发现十分精妙) 的设计细节及使用注意事项;
-
lombok 使用注意点总结
lombok 绝对是开发者的好朋友, 其帮助我们节省了大量枯燥的重复代码量, 节约了开发时间; 使用 lombok 有很多技巧, 同时也会存在一些问题, 本文就着重总结一下;
-
curator 使用注意点总结
最近做的项目涉及到 server 端的服务注册与 client 端的服务发现, 其中大量使用到了 zookeeper; 在实践过程中不可避免得遇到了很多问题与坑, 历经数月的打磨与沉淀, 总算是步入了一个稳定的阶段, 至此总结一番是十分必要的;