macrozheng
Author

macrozheng

Dedicated to Java tech sharing and dissecting top open-source projects. Topics include Spring Boot, Spring Cloud, Docker, Kubernetes and more. Author’s GitHub project “mall” has 50K+ stars.

1.3k
Articles
0
Likes
3.2k
Views
0
Comments
Recent Articles

Latest from macrozheng

100 recent articles max
macrozheng
macrozheng
Feb 8, 2026 · Operations

Quickly Install and Use ERPNext with Docker: A Complete Guide

This article introduces the open‑source ERPNext system, outlines its key features, and provides step‑by‑step Docker commands for self‑hosting, enabling businesses to deploy a full‑featured, customizable ERP solution quickly and cost‑effectively.

DockerERPNextInstallation
0 likes · 4 min read
Quickly Install and Use ERPNext with Docker: A Complete Guide
macrozheng
macrozheng
Feb 3, 2026 · Backend Development

Long vs BigDecimal for Money: 10 Community Perspectives

The article explores the common dilemma of choosing between Long and BigDecimal for monetary values, summarizing ten distinct community suggestions ranging from using Long, BigDecimal, String, Protobuf, custom types, leadership advice, AI assistance, to minimalist integer approaches.

BigDecimalData TypesJava
0 likes · 4 min read
Long vs BigDecimal for Money: 10 Community Perspectives
macrozheng
macrozheng
Feb 2, 2026 · Fundamentals

Master Java Generics: Boost Type Safety and Reduce Casting

This article explains the motivation behind Java generics, their benefits such as compile‑time type checking and reduced casting, and provides concrete examples including generic classes, interfaces, collections, inheritance, custom generic methods, and common pitfalls, illustrated with code snippets and diagrams.

CollectionsGenericsJava
0 likes · 9 min read
Master Java Generics: Boost Type Safety and Reduce Casting
macrozheng
macrozheng
Jan 30, 2026 · Backend Development

Why MyBatis Triggers OutOfMemoryError and How to Fix It

The article examines a production OutOfMemoryError caused by MyBatis SQL construction, explains heap and metaspace exhaustion, analyzes MyBatis source code, reproduces the issue with JVM settings, and offers practical recommendations to prevent similar memory failures.

HeapJavaMemoryLeak
0 likes · 7 min read
Why MyBatis Triggers OutOfMemoryError and How to Fix It
macrozheng
macrozheng
Jan 28, 2026 · Backend Development

Why Switch from Maven to Gradle? A Hands‑On Migration Guide with Mall‑Tiny

This article walks through converting a SpringBoot Maven project (mall‑tiny) to Gradle, explains Gradle’s key features and plugins, shows step‑by‑step setup, demonstrates dependency migration, compares build times with Maven, and provides a complete Gradle build script with reference links.

Build ToolGradleJava
0 likes · 9 min read
Why Switch from Maven to Gradle? A Hands‑On Migration Guide with Mall‑Tiny
macrozheng
macrozheng
Jan 27, 2026 · Backend Development

Why Tomcat Beats Jetty 15× with SpringBoot 4 Virtual Threads

A performance comparison of SpringBoot 4.0 with virtual threads shows Tomcat achieving up to fifteen times higher QPS than Jetty, while startup times remain similar, and provides step‑by‑step instructions for building native Docker images and switching containers.

DockerJettySpringBoot
0 likes · 10 min read
Why Tomcat Beats Jetty 15× with SpringBoot 4 Virtual Threads
macrozheng
macrozheng
Jan 27, 2026 · Databases

Why Leading Companies Choose PostgreSQL Over MySQL: A Technical Comparison

This article compares PostgreSQL and MySQL, highlighting PostgreSQL's richer data types, native sequences, extensible ecosystem, advanced monitoring, robust replication, open licensing, and MVCC implementation, while also acknowledging MySQL's strengths in simplicity and read‑heavy web workloads.

ComparisonExtensionsPostgreSQL
0 likes · 9 min read
Why Leading Companies Choose PostgreSQL Over MySQL: A Technical Comparison
macrozheng
macrozheng
Jan 23, 2026 · Backend Development

Why Maven 4’s New Features Are a Game‑Changer for Java Projects

Maven 4 introduces a revamped POM model, native flattening, explicit artifact types, subproject support, a tree‑based lifecycle for parallel builds, and richer configuration options, making it a timely upgrade for modern Java development pipelines.

JavaMaven4POM
0 likes · 8 min read
Why Maven 4’s New Features Are a Game‑Changer for Java Projects