优雅地使用 ThreadLocal 传递参数

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

从一个实际问题出发讲讲排错思路

现状是,保存作品,发放奖品,偶现500错误,请求超时,查看日志,错误日志如下。查看日志org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transa
2022年05月07日 417次浏览

mysql性能瓶颈-高CPU定位

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

一篇尽量用人话把DDD讲明白的文章

引言在人类发展史上,当人们遇到棘手的问题时,一个惯用的手段,通常是将问题拆分比如研究一个桃树由什么组成?首先根据植物的器官,细分为树叶,桃花,桃子,树茎,树根,等。于是问题变成了,树叶,桃花,桃子,各由什么组成?树叶是由叶片,叶柄,拖页组成,桃花由,花瓣,花粉,花柱组成,等。于是问题又变成了,叶柄是
2022年05月02日 476次浏览

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

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

DDD之仓储模式和工厂模式

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

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

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

依赖倒置的必要性

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

Percona Toolkit有的32个命令

一级标题Percona Toolkit有的32个命令,可以分为7大类工具类别 工具命令 工具作用 备注开发类pt-duplicate-key-checker列出并删除重复的索引和外键 pt-online-schema-change在线修改表结构 pt-query-advisor分析查询语句,并给出建
2022年04月25日 335次浏览

jprofiler远程分析操作

使用JProfiler工具远程对服务器上的 Java 应用进行分析简介通过使用JProfiler工具,可以轻松对运行在服务器上的应用进行堆栈的分析材料准备jprofiler_linux_11_1_4.tar.gz 【下载地址:https://download-gcdn.ej-technologies
2022年04月23日 377次浏览