finds.dev← search

// the find

DerekYRC/mini-spring

★ 6,365 · Java · Apache-2.0 · updated Aug 2026

mini-spring is a simplified version of the Spring framework that helps you quickly familiarize yourself with Spring source code and master Spring's core principles. It extracts Spring's core logic with extremely simplified code while preserving Spring's core functionality.

mini-spring is a teaching reimplementation of Spring Framework's core: the IoC container, bean lifecycle, AOP proxies, event publishing, and type conversion, with package and class names that track the real framework. It is for developers who want to read a smaller version of Spring's source first, and it works best alongside its changelog, which walks through the features in the order they were built.

- Package and class names follow the real framework, including AbstractAutowireCapableBeanFactory, DefaultAdvisorAutoProxyCreator and ApplicationContextAwareProcessor, so you can move from this code to the matching class in Spring without translating names.

- Circular dependency handling is covered in three test variants, with and without proxy beans, each in its own test class. That is the part of Spring most people find hardest to follow, and isolating it makes it easier to step through.

- The AOP layer splits Pointcut, ClassFilter, MethodMatcher, Advisor and ProxyFactory the way Spring does, and JDK dynamic proxies and CGLIB both sit behind the AopProxy abstraction. The difference between the two proxy strategies is easy to see in the code.

- The license contradicts itself. The badge says Apache 2.0, but the README says commercial use requires the author's written permission. Anyone wanting to build on this has to resolve that first.

- The build badge is a static shields.io label reading build-passing, not a link to a CI run, so it says nothing about the repo's current state.

- The topics include spring-boot, spring-mvc and springboot, but the feature list covers neither auto-configuration nor MVC. Someone arriving from those searches will be looking for something that is not here.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →