摘要:
汇总函数 rollup rollup是 SQL 关键字,在 MySQL 中得用with rollup。它是group by子句的扩展,用于统计后增加一行汇总数据。 举例,现有库存表,我们按仓库名称分组,统计每个仓库的产品总量,最后来一个汇总。 mysql> SELECT * FROM invento 阅读全文
摘要:
Caffeine 缓存是 Java 的高性能缓存库。本文简单记录下 Caffeine 缓存的用法。 依赖配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot 阅读全文
摘要:
定义 观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。 观察者模式中有两个角色,一个是主题(Subject),一个是观察者(Observer)。观察者会观察主题,当主题发生了变化,观察者会做出相应的处理。主题跟观察者的关系是一对多。观察者模式也叫发布 阅读全文
摘要:
假设现在有这样一个方法,入参是父类型的集合参数,这是个通用方法,你需要共用它,你现在要传子类型集合进去,怎么办? ```java class Animal { } class Dog extends Animal { } public class Service { public void doSt 阅读全文
摘要:
### 单体应用存在的问题 - 随着业务的发展,开发变得越来越复杂。 - 修改、新增某个功能,需要对整个系统进行测试、重新部署。 - 一个模块出现问题,很可能导致整个系统崩溃。 - 多个开发团队同时对数据进行管理,容易产生安全漏洞。 - 各个模块使用同一种技术进行开发,各个模块很难根据实际情况选择更 阅读全文
摘要:
## DDD 是什么 一般情况下,系统分析和系统设计都是分离的。比如,当我们拿到一个需求后,先梳理业务逻辑,再确定需要哪些表。表确定后再构建数据模型(DO),DO 只有属性和 setter、getter 方法,然后通过一个或多个`service`来完成业务逻辑的处理。这种模式我们可以称它为面向数据库 阅读全文
摘要:
## 知识点 1. class 文件结构 2. classloader 3. JVM 运行时数据区 4. 垃圾回收器和垃圾回收算法 5. JIT ## 类加载机制 JVM把`.class`文件加载到内存中时,创建对应的`class`对象,这个过程称之为类的加载机制。 ## 类的加载过程 Loadin 阅读全文
摘要:
## 起步依赖 Spring Boot 默认导入父工程依赖`spring-boot-starter-parent`,它里面已经申明好了众多的可能会用到的依赖。比如常用的`spring-boot-starter-web`,我们需要用什么,就在自己的`pom.xml`文件中定义就好了。 ```xml o 阅读全文
摘要:
放眼望去,`java.util.concurrent`包下类大致包括:atomic 原子类、锁、并发集合、线程池、工具类。我们挑重要的了解一下。 ## Atomic 原子类 Java针对并发编程已经有了各种锁,为什么还需要原子类?原子类一定有些特别的应用场景? 在很多时候,我们需要的仅仅是一个简单的 阅读全文