优雅地使用 ThreadLocal 传递参数

前言在我们日常Web开发中难免遇到需要把一个参数层层的传递到最内层,然后中间层根本不需要使用这个参数,或者是仅仅在特定的工具类中使用,这样我们完全没有必要在每一个方法里面都传递这样一个通用的参数。如果有一个办法能够在任何一个类里面想用的时候直接拿来使用就太好了。Java的Web项目大部分都是基于To
2022年05月08日 764次浏览

mysql性能瓶颈-高CPU定位

在性能压测过程中,导致数据库CPU很高的原因有很多种,一般和慢SQL也有关(因为每条SQL要么占CPU高,要么占IO高,大体是这样),那么如何分析到是某些SQL引起的呢?分析时机:运行性能测试,监测到CPU比较高时,实时分析;1、SQL引起的高CPU**先抛出结论:**如果数据分布不合理,会导致sq
2022年05月06日 607次浏览

领域模型中的VO,DO,DTO,PO 的划分

领域模型中的实体类领域模型中的实体类分为四种类型:VO、DTO、DO、PO,各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。业务分层为:视图层(VIEW+ACTION),服务层(SERVICE),持久层(DAO)相应各层间实体的传递如下图:项目中我们并没有严格遵循这种传递关系,
2022年05月02日 641次浏览

DDD之仓储模式和工厂模式

仓储模式为了解耦领域逻辑和数据处理逻辑,在中间加了薄薄的一层仓储。    仓储模式包含仓储接口和仓储实现,仓储接口面向领域层提供基础层数据处理相关的接口,仓储实现则完成仓储接口对应的数据持久化相关的逻辑处理。一个聚合配备一个仓储,由仓储完成聚合数据的持久化。领域层逻辑面向仓储接口编程,聚合内的数据持
2022年05月02日 723次浏览

初识失血,贫血,充血,胀血四种模型

领域模型分为4大类:失血模型、贫血模型、充血模型、胀血模型。这类理论都是些软件设计领域的大牛(如Martin Fowler)提出来的。想要理解这几个分类,先要知道“血”指的是domain object的model层内容。1、失血模型失血模型中,domain object只有属性的get set方法的
2022年05月01日 683次浏览

依赖倒置的必要性

一、概念依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并且能够降低
2022年05月01日 374次浏览

知乎摘录-如何看待“富贵不还乡,如锦衣夜行”?

没有真正农村生活经历的人,很难理解“[富贵还乡”的真意。农村是个赤裸裸的丛林社会,有金字塔般森严的等级秩序,所有的村民并不人人平等,而是有清晰的三六九等的划分,有的是猛兽,有的是豺狼,有的是[狐獾,有的是牛羊,有的是鼠兔,有的是蝼蚁。每一个农村看似平静平和的表面下,也像动物世界那样,每天都上演着[恃
2021年12月18日 933次浏览