awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
DerekYRC avatar

DerekYRC/mini-spring

0
View on GitHub↗
6,360 stars·1,451 forks·Java·Apache-2.0·8 viewsgithub.com/DerekYRC/mini-spring↗

Mini Spring

mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle of beans, including instantiation, property population, and scope management, while providing a system for automating the wiring of components.

The project implements a Java AOP framework that uses dynamic proxies to intercept method calls for cross-cutting logic. It also functions as a Java component scanner to automatically discover and register managed objects via annotations and as a Java event bus to decouple components through a publish-subscribe multicast system.

The container supports bean definition through XML configuration and annotation-based scanning, alongside a three-level cache to resolve circular dependencies. It includes a post-processor hook pipeline to modify bean definitions and instances, and a resource loader to resolve property placeholders from external files.

Features

  • Dependency Injection - Implements a core dependency injection system for managing object lifecycles and resolving dependencies.
  • Dependency Injection Containers - Provides a central inversion-of-control container to manage the full lifecycle and dependency resolution of beans.
  • Inversion-of-Control Containers - Provides a central container for bean instantiation, scope management, and resolution of circular dependencies.
  • Circular Dependency Resolvers - Utilizes a three-level cache to provide early object references and resolve circular dependencies.
  • Java Component Containers - Acts as a runtime environment that handles the lifecycle and provisioning of Java objects.
  • Annotated Class Discovery - Implements automated discovery of managed objects by scanning packages for specific annotations.
  • Annotation-Based Component Scanning - Automatically discovers and registers managed objects by scanning specified Java packages for annotations.
  • Bean Definition Configurations - Supports defining bean metadata and relationships through XML configurations and annotations.
  • Aspect-Oriented Programming Frameworks - Provides an AOP framework to modularize cross-cutting concerns like logging and security.
  • Automated Component Discovery - Automatically detects and registers annotated classes from packages to eliminate manual instantiation.
  • Dependency Injection Frameworks - Provides a lightweight Java dependency injection framework for managing component wiring and lifecycles.
  • Annotation-Based Injection - Resolves and injects required dependencies into fields or constructors using metadata annotations.
  • Method Interception Proxies - Uses runtime-generated dynamic proxies to intercept method calls for applying cross-cutting logic.
  • Annotated Class Discovery - Automatically discovers and registers managed components by scanning annotated classes in specified packages.
  • Bean Post-Processor Pipelines - Provides a post-processor pipeline to modify bean definitions and instances during the container initialization phase.
  • Bean Initialization Customizations - Provides post-processors and aware interfaces to inject custom logic before or after bean initialization.
  • External Configuration Loading - Loads external property files to resolve configuration placeholders without modifying source code.
  • Publish-Subscribe Messaging - Implements a publish-subscribe pattern for triggering and listening to events within the application context.
  • Classpath Component Scanners - Automatically discovers and registers managed objects by scanning classpath packages for specific annotations.
  • Scoped Lifecycle Managers - Supports singleton and prototype scopes to control the visibility and lifecycle of managed objects.
  • Annotation-Driven Configuration - Uses annotations and placeholder resolvers to inject configuration values from property files into beans.
  • Application Event Buses - Implements an event-driven architecture to decouple components via a publish-subscribe system.
  • Bean Post-Processors - Process object definitions before instantiation and modify instances before or after their initialization.
  • Property Source Resolvers - Resolves configuration placeholders from external property files and classpath resources for injection into beans.
  • Event Bus Systems - Provides an internal event bus implementation for decoupled communication between application components.
  • Event Dispatching Systems - Includes a publish-subscribe multicast system to decouple components via a centralized event dispatcher.
  • Event-Driven Architectures - Implements a publish-subscribe multicast system to decouple components via application-level events.
  • Lifecycle Callbacks - Executes specific initialization and destruction methods to manage resource setup and cleanup for beans.
  • Value Injection Annotations - Populates object properties using annotations to inject configuration values from external sources.
  • Property Placeholders - Injects configuration values into object fields by resolving placeholders using a specific syntax.
  • Application Event Multicasters - Ships a publish-subscribe system to decouple internal components via event multicasting.
  • Spring Framework Analysis - Simplified framework implementation to practice and learn core principles.

Star history

Star history chart for derekyrc/mini-springStar history chart for derekyrc/mini-spring

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Mini Spring

Similar open-source projects, ranked by how many features they share with Mini Spring.
  • xuchengsheng/spring-readingxuchengsheng avatar

    xuchengsheng/spring-reading

    9,921View on GitHub↗

    This is a learning resource that explains the Spring Framework through source code analysis and practical examples. It covers the foundational principles of Inversion of Control and Dependency Injection, demonstrating how the IoC container manages bean definitions, dependency injection, and lifecycle callbacks. The material also explores Spring's Aspect-Oriented Programming implementation, showing how cross-cutting concerns like logging and security are handled through proxy-based weaving. The resource provides walkthroughs of Spring Boot's automatic configuration mechanism, detailing how con

    Javaannotationsawareinterfacebackenddevelopment
    View on GitHub↗9,921
  • fuzhengwei/small-springfuzhengwei avatar

    fuzhengwei/small-spring

    4,899View on GitHub↗

    Small-Spring is a simplified Java implementation of the Spring framework designed to study the internal architecture of inversion of control containers and dependency injection frameworks. It functions as a bean container that manages object lifecycles and resolves dependencies through automated instantiation and property injection. The project implements a mechanism for intercepting method calls using dynamic proxies to support aspect-oriented programming. It separates cross-cutting concerns from business logic by wrapping target objects to modify method executions. The system covers compon

    Java
    View on GitHub↗4,899
  • code4craft/tiny-springcode4craft avatar

    code4craft/tiny-spring

    4,089View on GitHub↗

    tiny-spring is a Java inversion of control container and aspect-oriented programming framework. It provides a system for managing object lifecycles and dependency injection to decouple application components. The project features a bytecode proxy generator that enables method interception and behavioral modification for classes that do not implement interfaces. It uses pointcut expressions to match specific classes and methods for the execution of cross-cutting logic via dynamic proxies. The framework manages singleton components and resolves object dependencies using lazy initialization. Ap

    Java
    View on GitHub↗4,089
  • spring-projects/spring-frameworkspring-projects avatar

    spring-projects/spring-framework

    60,056View on GitHub↗

    Spring Framework is an enterprise Java framework providing a comprehensive infrastructure for building server-side applications. It functions as a dependency injection container and a Java application framework designed to support scalable backend development through modular architecture. The project provides tools for aspect-oriented programming to intercept method calls using dynamic proxies, allowing the application of cross-cutting concerns such as security and transactions. It also includes a centralized system for managing object lifecycles and coordinating component wiring by injecting

    Javaframeworkspringspring-framework
    View on GitHub↗60,056
See all 30 alternatives to Mini Spring→

Frequently asked questions

What does derekyrc/mini-spring do?

mini-spring is a Java dependency injection framework and inversion of control container. It manages the full lifecycle of beans, including instantiation, property population, and scope management, while providing a system for automating the wiring of components.

What are the main features of derekyrc/mini-spring?

The main features of derekyrc/mini-spring are: Dependency Injection, Dependency Injection Containers, Inversion-of-Control Containers, Circular Dependency Resolvers, Java Component Containers, Annotated Class Discovery, Annotation-Based Component Scanning, Bean Definition Configurations.

What are some open-source alternatives to derekyrc/mini-spring?

Open-source alternatives to derekyrc/mini-spring include: xuchengsheng/spring-reading — This is a learning resource that explains the Spring Framework through source code analysis and practical examples. It… fuzhengwei/small-spring — Small-Spring is a simplified Java implementation of the Spring framework designed to study the internal architecture… code4craft/tiny-spring — tiny-spring is a Java inversion of control container and aspect-oriented programming framework. It provides a system… spring-projects/spring-framework — Spring Framework is an enterprise Java framework providing a comprehensive infrastructure for building server-side… jeffijoe/awilix — Awilix is a JavaScript dependency injection framework and inversion of control container. It provides a centralized… liyifeng1994/ssm — This is a demonstration project that illustrates the classic SSM architecture pattern—combining SpringMVC, Spring, and…