会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
节
春
度
欢
十年磨一剑
博客园
首页
新随笔
联系
管理
上一页
1
2
3
4
5
6
···
11
下一页
2022年4月23日
手写事件发布订阅框架
摘要: 一、前言 发布订阅模式也叫观察者模式,利用该模式可以进行代码解耦,很多框架都用到该设计模式,比如Spring的事件机制,guava的EventBus(事件总线)等,不清楚观察者模式的话可以查看本人之前写的博客《设计模式之观察者模式》。 为了更好的了解现有的事件框架实现原理,便手写了一个简单的
阅读全文
posted @ 2022-04-23 16:46 烟味i
阅读(671)
评论(0)
推荐(1)
2021年11月12日
Hibernate-Validator扩展之自定义注解
摘要: Hibernate-Validator框架提供了一系列的注解去校验字段是否符合预期,如@NotNull注解可以校验字段是否为null,如果为null则抛出对应的异常提示信息,通过注解大大减少了我们日常的开发工作量。包括流行的spring-boot-starter-validation,底层也是靠Hibernate-Validator实现的。 但是在实际的开发中,现有的注解可能不能满足我们的校验需求,Hibernate-Validator框架就贴心的提供了扩展,通过自定义校验注解来封装我们自己的校验逻辑。
阅读全文
posted @ 2021-11-12 23:12 烟味i
阅读(1170)
评论(0)
推荐(0)
2021年10月20日
自定义ConditionalOnXX注解
摘要: 一、Conditional注解介绍 对SpringBoot有足够了解的小伙伴应该都用过Conditional系列注解,该注解可用在类或者方法上用于控制Bean的初始化。 常用的Conditional注解有以下几种: @ConditionalOnBean:如果存在对应的Bean,则进行当前Bean的初
阅读全文
posted @ 2021-10-20 22:16 烟味i
阅读(572)
评论(0)
推荐(0)
2021年9月4日
分布式事务框架seata入门
摘要: 一、简介 在近几年流行的微服务架构中,由于对服务和数据库进行了拆分,原来的一个单进程本地事务变成多个进程的本地事务,这时要保证数据的一致性,就需要用到分布式事务了。分布式事务的解决方案有很多,其中国内比较主流的框架就是Seata了。 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单
阅读全文
posted @ 2021-09-04 22:24 烟味i
阅读(1331)
评论(0)
推荐(1)
2021年1月2日
如何设计一个高性能网关
摘要: 一、前言 最近在github上看了soul网关的设计,突然就来了兴趣准备自己从零开始写一个高性能的网关。折腾了大概三周时间,网关ship-gate核心功能基本都已完成,写这篇文章是记录我是如何从零开始手写一个网关的。 二、设计 2.1技术选型 网关是所有请求的入口,所以要求有很高的吞吐量,为了实
阅读全文
posted @ 2021-01-02 20:52 烟味i
阅读(4075)
评论(9)
推荐(4)
2020年10月4日
大话MySQL锁
摘要: 一、锁介绍 不同存储引擎支持的锁是不同的,比如MyISAM只有表锁,而InnoDB既支持表锁又支持行锁。 下图展示了InnoDB不同锁类型之间的关系: 图中的概念比较多不好理解,下面依次进行说明。 1.1乐观锁 乐观锁是相对悲观锁而言的,乐观锁假设数据一般情况下不会造成冲突,所在在数据进行提交更
阅读全文
posted @ 2020-10-04 21:44 烟味i
阅读(178)
评论(0)
推荐(0)
2020年8月22日
手写一个RPC框架
摘要: 一、前言 前段时间看到一篇不错的文章《看了这篇你就会手写RPC框架了》,于是便来了兴趣对着实现了一遍,后面觉得还有很多优化的地方便对其进行了改进。 主要改动点如下: 除了Java序列化协议,增加了protobuf和kryo序列化协议,配置即用。 增加多种负载均衡算法(随机、轮询、加权轮询、平滑加权轮
阅读全文
posted @ 2020-08-22 13:10 烟味i
阅读(3472)
评论(0)
推荐(2)
2020年7月31日
JVM参数调优总结
摘要: 一、前言 要想成为一名高级Java开发具备JVM调优的能力必不可少,能够根据项目实际情况进行JVM调优的前提是理解JVM原理和常用JVM参数的含义及作用,虽然《深入理解Java虚拟机》这本书已经写了很多,但是里面的提到的参数比较散乱,故写此文总结。 二、JVM参数JVM相关参数名称作用默认值备注-Xms初始堆大小物理内存的1/64(113543K(130112K), 0.0094143 ...
阅读全文
posted @ 2020-07-31 23:02 烟味i
阅读(1048)
评论(0)
推荐(0)
2020年6月17日
【设计模式】装饰者模式
摘要: 一、简介 当我们需要对一个类(A)的功能进行扩展的时候,可以选择使用继承通过子类(B)来实现,但是如果后来又要对A类增加一些功能且其中一些功能原来我们在子类B中已经实现过了,这时候怎么办呢? 这时候只能再用子类C继承A类并把代码重写一遍,然后子类就越来越多难以维护且有很多重复代码不够灵活。 我们知道
阅读全文
posted @ 2020-06-17 22:02 烟味i
阅读(209)
评论(0)
推荐(0)
2020年5月19日
插入式注解处理器
摘要: 一、简介 插入式注解处理器是JSR-269中定义的API,该API可以在编译期对代码中的特定注解进行处理,从而影响到前端编译器的工作过程,通过插入式注解处理器可以读取、修改、添加抽象语法树中的任意元素,这样就可以实现很多很cool的功能。 著名的Lombok就用到插入式注解处理器,它可以通过注解来实现自动生成getter/setter方法、生成equals()和hashCode()方法等...
阅读全文
posted @ 2020-05-19 22:02 烟味i
阅读(548)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
···
11
下一页
公告