摘要: 通过上一篇博客,我们知道了 Eureka 是什么以及为什么要使用它,今天,我们开始研究如何使用 Eureka。 在此之前,先说明一点。网上几乎所有关于 Eureka 的文章都是基于 Spring 的,但**本文的例子不会有任何 Spring 的代码,我尽量使用 Eureka 原生的 API**,后面的源码分析也是如此。因为 Spring 把 Eureka 藏得越好,我们研究起来就会越困难,毕竟我写这个系列不是只为了学会怎么使用 Eureka,我们还要分析它的源码。当然,实际项目中就没必要这么搞了。 阅读全文
posted @ 2021-01-28 09:07 子月生 阅读(2002) 评论(0) 推荐(2) 编辑
摘要: 这个系列开始研究 Eureka,在此之前,先来谈谈负载均衡器。 本质上,Eureka 就是一个负载均衡器,可能有的人会说,它是一个服务注册中心,用来注册服务的,这种说法不能说错,只是有点片面。 在这篇博客里,我将尽可能循序渐进、图文并茂地回答下面的几个问题。至于 Eureka 的使用、配置、源码分析、集群配置等等,这些后续博客再补充。 阅读全文
posted @ 2021-01-22 14:19 子月生 阅读(2220) 评论(4) 推荐(7) 编辑
摘要: 在实际项目中,考虑到不同的数据使用者,我们经常要处理 VO、DTO、Entity、DO 等对象的转换,如果手动编写 setter/getter 方法一个个赋值,将非常繁琐且难维护。通常情况下,这类转换都是同名属性的转换(类型可以不同),我们更多地会使用 bean copy 工具,例如 Apache Commons BeanUtils、Cglib BeanCopier 等。 在使用 bean copy 工具时,我们更多地会考虑性能,有时也需要考虑深浅复制的问题。本文将对比几款常用的 bean copy 工具的性能,并介绍它们的原理、区别和使用注意事项。 阅读全文
posted @ 2020-12-09 13:42 子月生 阅读(2864) 评论(1) 推荐(2) 编辑
摘要: 实际项目中,我们经常需要使用序列化工具来存储和传输对象。目前用得比较多的序列化工具有:jackson、fastjson、kryo、protostuff、fst 等,本文将简单对比这几款工具序列化和反序列化的性能。 阅读全文
posted @ 2020-11-09 14:25 子月生 阅读(6171) 评论(2) 推荐(2) 编辑
摘要: Java源码详解系列(十一)--Spring的使用和源码 Spring 是一个一站式的 Java 框架,致力于使我们的项目更加“高内聚、低耦合”。通过 Spring,我们可以避免编写大量额外代码,更专注于我们的核心逻辑。目前,Spring 已经成为最受欢迎的 Java 框架。 Spring 的全家桶包含非常多的项目,而且还在不断增加,但我们可以发现,最核心 阅读全文
posted @ 2020-10-12 15:56 子月生 阅读(522) 评论(0) 推荐(0) 编辑
摘要: Spring源码系列(四)--spring-aop是如何设计的 顾名思义,spring-aop 是用来做 AOP 开发的,搭配 spring-bean 一起使用的话,AOP 将更加解耦、方便。在实际项目中,spring-aop 被广泛用来实现日志、权限、事务、异常等的统一管理。 上一篇博客简单讲了 spring-aop 的基础组件、架构和使用方法,本文将开始研究 spring-aop 的源码,主要分成以下部分: 1. spring-aop 的几个重要的组件,如 Joinpoint、Advice、Pointcut、Advisor 等; 2. spring-aop 是如何设计的 阅读全文
posted @ 2020-09-28 15:55 子月生 阅读(1146) 评论(0) 推荐(0) 编辑
摘要: Spring源码系列(三)--spring-aop的基础组件、架构和使用 顾名思义,spring-aop 是用来做 AOP 开发的,搭配 spring-bean 一起使用的话,AOP 将更加解耦、方便。在实际项目中,spring-aop 被广泛用来实现日志、权限、事务、异常等的统一管理。 我将通过两篇博客来详细介绍 spring-aop 的使用、源码等。这是第一篇博客,主要介绍 spring-aop 的组件、架构、使用等。 阅读全文
posted @ 2020-09-15 09:08 子月生 阅读(1057) 评论(0) 推荐(1) 编辑
摘要: JMH 是 OpenJDK 团队开发的一款基准测试工具,一般用于代码的性能调优,精度甚至可以达到纳秒级别,适用于 java 以及其他基于 JVM 的语言。和 Apache JMeter 不同,**JMH 测试的对象可以是任一方法,颗粒度更小**,而不仅限于rest api。本文将使用入门例子介绍如何使用 JMH,并结合官方示例代码介绍 JMH 的详细配置方法。 阅读全文
posted @ 2020-08-29 11:05 子月生 阅读(2341) 评论(0) 推荐(2) 编辑
摘要: 本文主要讲解以下内容: 1. 什么是 maven?maven有什么用? 2. 安装和使用 maven 3. maven 的构建生命周期 4. 配置 maven 5. 常见问题(持续更新) 阅读全文
posted @ 2020-07-22 13:46 子月生 阅读(812) 评论(3) 推荐(2) 编辑
摘要: 针对 Mybatis 的分析,我拆分成使用、源码分析、生成器等部分,已更新5篇博客,都放在 [Mybatis]这个系列里,内容将持续更新。 1. Mybatis详解系列(一)--持久层框架解决了什么及如何使用Mybatis 2. Mybatis源码详解系列(二)--Mybatis如何加载配置及初始化 3. Mybatis源码详解系列(三)--从Mapper接口开始看Mybatis的执行逻辑 4. Mybatis源码详解系列(四)--你不知道的Mybatis用法和细节 5. Mybatis详解系列(五)--Mybatis Generator和全注解风格的MyBatis3DynamicSql 阅读全文
posted @ 2020-07-05 09:31 子月生 阅读(699) 评论(0) 推荐(0) 编辑