Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

617 Commits

Repository files navigation

AngusInfra

English | 中文

Spring BootSpring CloudEureka ClientOpen API

AngusInfra is a rapid development foundational framework based on SpringBoot. It aims to simplify and accelerate the development process of multi-tenant applications, enabling developers to build scalable, secure, and maintainable server-side applications more efficiently.

Documentation

Core Features

  • 🌟 OpenAPI Support: Strict compliance with OpenAPI specifications ensures broad community support for API development and management.

  • 🌟 Multi-Tenancy Architecture: Designed as a shared-datasource multi-tenant system, AngusInfra simplifies management and reduces hardware/operational costs while ensuring robust data isolation and security.

  • 🌟 SpringBoot Foundation: Built on SpringBoot with business-oriented extensions, it delivers powerful backend capabilities, leverages a mature ecosystem, and accelerates development workflows.

  • 🌟 Rapid Development: Pre-built components and modules enable developers to quickly scaffold applications, cutting development cycles significantly.

    • 🚀 Generic Business Logic: Standardized templates for high-frequency business scenarios reduce redundant code by over 50%.
    • 🚀 Rich Utilities: Out-of-the-box APIs for data conversion, validation, and enhanced wrappers for mainstream middleware (Cache/Database/Remote) boost development efficiency by 50%.
  • 🌟 Extensibility: Modular architecture allows flexible customization of business logic and user interfaces to meet project-specific needs.

  • 🌟 Security-First Design: Integrated authentication and authorization mechanisms (OAuth2, API Key, etc.) safeguard user data and application integrity.

Core Modules

ModuleDescription
specPublic specifications library defining global common models (DTOs/enums/error codes), interface contracts, and cross-module communication protocols.
coreCore base library providing fundamental utilities, exception handling, multi-tenancy support, business templates, and Spring extensions.

Data Layer Modules

ModuleDescription
jpa-starterSpring Data JPA integration starter providing multi-tenant dynamic datasource configuration, generic repositories, Specification builders, and audit support.
shardingProduction-ready multi-tenant database sharding framework with dynamic routing DataSource, SQL table-name rewriting, pluggable shard-key resolution, and automatic schema management. Supports modulo and consistent-hash strategies, in-memory/JDBC/JPA table registry, and a clean SPI model. See sharding/README.md.
cacheTwo-level cache library combining in-memory (Caffeine) and database (JPA) persistence, with management REST API and Spring Boot auto-configuration.
l2cacheTwo-level cache library integrating Redis + Caffeine for high-performance caching, supporting distributed consistency and cache penetration prevention strategies.
lettucexRedis enhancement library standardizing Lettuce configurations and providing business extension utilities.

Distributed Infrastructure

ModuleDescription
idgenDistributed ID generator supporting Snowflake-variant UidGenerator, custom business ID (BidGenerator), and caching strategies.
jobDatabase-driven distributed task scheduling framework with SIMPLE, SHARDING, and MAP_REDUCE execution models, distributed locking, and management REST API.
queueDatabase-backed message queue implementing lease-based SQS-style semantics with partitioning, dead-letter support, lifecycle management, and REST API.

Plugin Framework

ModuleDescription
pluginExtensible plugin framework with dynamic class loading, lifecycle management, and hot-plugging support (includes api, core, and starter sub-modules).

Security & Authentication

ModuleDescription
security/auth-resource-modelAuthorization persistence resource models and DTOs for resource authentication.
security/auth-server-starterOAuth2 authorization server with automated token issuance, key management, and authorization endpoint configuration.
security/auth-resource-starterOAuth2 resource server supporting password and client credentials grant types for resource access authorization.
security/auth-openapi2p-starterPrivate API authentication module (OAuth2 client credentials) for standardized SaaS private deployment authorization.
security/auth-innerapi-starterInternal service authentication module (OAuth2 client credentials) for secure inter-service communication.

SpringBoot Rapid Integration

ModuleDescription
integration/web-starterRESTful API development toolkit with auto-configured unified response formats, global exception handling, and CORS policies.
integration/oas3-starterOpenAPI 3.x support with automated API documentation generation and Swagger UI integration.
integration/feign-starterSpring Cloud OpenFeign declarative HTTP client integration with encoding, decoding, and error handling.
integration/observability-starterLogging, metrics, and data export utilities for application observability.

Development Toolchain

ModuleDescription
validatorEnhanced validation library with annotation-based rules and custom validator templates.
remoteOpenFeign-based remote call library with DTO/VO/TO definitions, unified response formats, and multi-language support.
bomBill of Materials (BOM) for centralized dependency version management and conflict resolution.

Architecture Governance

ModuleDescription
parentMaven parent POM defining global build configurations, plugin management, and profile strategies.
docsDocumentation repository including architecture design, module guides, and quickstart instructions.

Use Cases

💡 AngusInfra is particularly well-suited for SaaS applications that require multi-tenant support, enterprise internal systems, and other web applications that need rapid development and deployment.

License

📜 Licensed under GPLv3

About

🔥 AngusInfra is a foundational framework for rapidly developing multi-tenant web applications, built on the Enterprise-level development framework SpringBoot.

Topics

Resources

Stars

321 stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages