17 dépôts
Tools for modularizing cross-cutting concerns like logging, security, and transactions.
Distinguishing note: Focuses on the implementation of interceptors and proxies for cross-cutting logic.
Explore 17 awesome GitHub repositories matching software engineering & architecture · Aspect-Oriented Programming Frameworks. Refine with filters or upvote what's useful.
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
Implements an aspect-oriented programming framework for modularizing concerns like security and transactions.
This repository serves as a comprehensive collection of practical demonstrations and tutorials for building enterprise-ready Java applications using the Spring Boot framework. It provides structured guidance on core development topics, including the implementation of inversion-of-control containers, auto-configuration mechanisms, and convention-over-configuration patterns to simplify the assembly of complex systems. The project distinguishes itself by offering implementation patterns for diverse architectural requirements, such as microservices development, reactive programming models for hig
Intercepts method calls to inject cross-cutting logic like security and transactions without modifying core business code.
Hutool is a comprehensive suite of Java extensions designed to serve as a standard library extension. Its primary purpose is to reduce development boilerplate for common programming tasks and data manipulation through a collection of utility classes. The project provides specialized toolkits for database management using active record patterns and connection pooling, as well as network communication via a simplified HTTP client and asynchronous socket management. It includes security and identity capabilities such as symmetric and asymmetric encryption, image captcha generation, and JWT token
Provides dynamic proxies and interceptors to apply cross-cutting logic using aspect-oriented programming.
Drogon is a high-performance, cross-platform C++ framework designed for building asynchronous web services and server-side applications. It functions as a multi-threaded, event-driven server engine that manages concurrent network traffic and WebSocket connections with minimal latency. By leveraging non-blocking input/output and native code compilation, the framework provides a foundation for scalable applications that operate efficiently across diverse hardware architectures. The framework distinguishes itself through its compile-time template rendering, which transforms dynamic HTML views in
Provides middleware hooks for injecting custom logic and security policies into the request-response cycle.
The AWS Cloud Development Kit is an infrastructure-as-code framework that enables developers to define and provision cloud resources using familiar programming languages. By utilizing construct-based synthesis, it translates high-level, object-oriented code into declarative templates, allowing for the automated management of complex cloud environments through a centralized, code-driven control plane. The framework distinguishes itself through its ability to model infrastructure as a dependency-aware resource graph, ensuring that components are provisioned and updated in the correct order. It
Applies security and compliance rules to infrastructure definitions during the synthesis phase using aspect-oriented logic.
Guice is a Java dependency injection framework and component container. It automates object wiring by mapping interfaces to implementations via a central injector, removing the need for manual factory patterns and constructor calls. The framework provides specialized support for aspect-oriented programming, allowing for the interception and modification of method execution to implement shared cross-cutting concerns. It also functions as a persistence manager to coordinate transaction boundaries and manage the lifecycle of entity managers within a dependency-injected environment. Its core cap
Intercepts and modifies method execution behavior to implement shared concerns without changing core business logic.
Spring Security is a comprehensive security framework for Java applications that provides authentication and authorization for both web and non-web environments. It functions as an implementation of authentication and authorization logic integrated with the Java runtime environment to protect sensitive resources from unauthorized access. The framework includes toolkits for implementing OpenID Connect and OAuth 2.0 authorization servers and clients, as well as tools for integrating SAML 2.0 identity providers to enable cross-domain single sign-on. It utilizes a role-based access control system
Implements method-level security checks using aspect-oriented programming to decouple authorization from business logic.
Aspects is an aspect-oriented programming library and method hooking framework designed for intercepting and modifying JavaScript function behavior without altering the original source code. It serves as a runtime logic injector that allows for the addition and removal of executable code wrappers from active functions. The library enables the injection of custom logic before or after methods to change application behavior at runtime. It further provides the ability to intercept method calls to capture or override return values before they reach the caller. The framework manages these interce
Provides a framework for implementing cross-cutting concerns by injecting custom logic into functions.
jvm-sandbox is a bytecode instrumentation framework and plugin container for the Java Virtual Machine. It acts as a runtime application modifier that enables the injection and modification of bytecode in a running process without requiring an application restart or changes to the original source code. The system provides a non-invasive aspect-oriented programming framework to intercept method execution and alter behavior in live processes. It functions as an isolated environment for functional modules, employing a custom class loader hierarchy to prevent dependency conflicts between plugins a
Implements cross-cutting concerns like logging or monitoring into a live application without modifying its existing codebase.
Hyperf is a high-performance PHP coroutine framework designed for building microservices and middleware. It utilizes non-blocking coroutines to handle high concurrency and low-latency request processing, providing a foundation for scalable distributed systems. The framework is distinguished by an aspect-oriented programming based dependency injector that enables pluggable components and meta-programming. It includes a coroutine-optimized object-relational mapper with integrated model caching and an orchestration toolkit for microservice governance, featuring service discovery, circuit breaker
Employs aspect-oriented programming to create pluggable components and meta-programming without altering core logic.
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
Provides an AOP framework to modularize cross-cutting concerns like logging and security.
This is a demonstration project that illustrates the classic SSM architecture pattern—combining SpringMVC, Spring, and MyBatis—for building scalable enterprise Java web applications. It serves as both a learning resource and a practical tutorial for developers who want to understand how these three frameworks work together in a full-stack context. The project provides a step-by-step guide for assembling SpringMVC, Spring, and MyBatis into a cohesive enterprise web application stack, covering everything from Spring dependency injection and transaction management to MyBatis database access and
Weaves cross-cutting concerns like logging and transactions into target objects using runtime JDK or CGLIB proxies.
Swoft est un framework PHP microservice haute performance conçu pour gérer le trafic réseau concurrent et les tâches asynchrones en utilisant des coroutines. Il fournit une base pour construire des services backend évolutifs via un runtime piloté par coroutines et des serveurs haute performance prenant en charge les protocoles HTTP, WebSocket, RPC et TCP. Le framework se distingue par un ensemble d'outils de gouvernance et d'optimisation, incluant un système de coordination de services distribués pour l'enregistrement, la découverte et le circuit breaking. Il dispose également d'un gestionnaire de pool de connexions pour les sockets de base de données et réseau réutilisables, ainsi qu'une bibliothèque pour la programmation orientée aspect afin d'intercepter et d'étendre le comportement des méthodes sans modifier le code source. Les capacités supplémentaires incluent un conteneur d'injection de dépendances pour le découplage des composants, l'exécution de tâches en pool de processus pour les calculs lourds et un mécanisme de planification pour les tâches récurrentes. Le système prend également en charge la gestion centralisée de la configuration pour synchroniser les paramètres d'application à travers différents environnements.
Provides a library for aspect-oriented programming to intercept and extend method behavior without modifying source code.
Small-Spring est une implémentation Java simplifiée du framework Spring, conçue pour étudier l'architecture interne des conteneurs d'inversion de contrôle et des frameworks d'injection de dépendances. Il fonctionne comme un conteneur de beans qui gère les cycles de vie des objets et résout les dépendances via l'instanciation automatisée et l'injection de propriétés. Le projet implémente un mécanisme d'interception d'appels de méthodes utilisant des proxies dynamiques pour prendre en charge la programmation orientée aspect. Il sépare les préoccupations transverses de la logique métier en enveloppant les objets cibles pour modifier l'exécution des méthodes. Le système couvre la découverte de composants via le scan du classpath et le chargement de ressources externes, incluant l'analyse de configurations XML. Il inclut la gestion du contexte applicatif, le contrôle de la portée des beans et un système de dispatch d'événements basé sur le pattern observateur pour gérer les événements système et les hooks de cycle de vie.
Implements a system for modularizing cross-cutting concerns using dynamic proxies and interceptors.
tiny-spring est un conteneur d'inversion de contrôle (IoC) Java et un framework de programmation orientée aspect (AOP). Il fournit un système pour gérer les cycles de vie des objets et l'injection de dépendances afin de découpler les composants d'application. Le projet dispose d'un générateur de proxy de bytecode qui permet l'interception de méthodes et la modification comportementale pour les classes qui n'implémentent pas d'interfaces. Il utilise des expressions de pointcut pour faire correspondre des classes et méthodes spécifiques pour l'exécution d'une logique transversale via des proxys dynamiques. Le framework gère les composants singleton et résout les dépendances d'objets en utilisant l'initialisation paresseuse (lazy initialization). Les environnements d'application et le câblage des composants sont définis et amorcés via des fichiers de configuration XML externes.
Provides an AOP framework for modularizing cross-cutting concerns via dynamic proxies.
Ce projet est un plugin Gradle conçu pour faciliter la programmation orientée aspect au sein des applications Android. Il fonctionne comme un outil de build qui intercepte les appels de méthodes pour injecter une logique transversale, permettant aux développeurs de centraliser des préoccupations telles que la journalisation, la sécurité ou le monitoring de performance sans modifier les fichiers sources individuels. Le plugin se distingue par sa capacité à effectuer du tissage de dépendances binaires, qui applique l'instrumentation à la fois sur le code source local et sur les formats de bibliothèques externes comme les JAR et AAR. En utilisant l'API Gradle Transform, il s'intègre directement dans le pipeline de compilation pour modifier le bytecode, garantissant que la logique injectée est appliquée de manière cohérente à travers tout le graphe de dépendances du projet. Au-delà de ses capacités d'instrumentation de base, l'outil fournit des fonctionnalités d'optimisation de build qui gèrent les conflits de dépendances et améliorent les performances de compilation. Il prend en charge le traitement incrémental pour retraiter sélectivement les segments de code modifiés et inclut des mécanismes de filtrage pour exclure des classes ou bibliothèques spécifiques du processus de build.
Implements aspect-oriented programming to modularize cross-cutting concerns like logging and performance monitoring within Android applications.
Ce projet est une plateforme de discussion communautaire construite sur le framework Spring Boot, conçue pour faciliter le partage de connaissances via des forums et des espaces de questions-réponses. Il fonctionne comme un système de gestion de contenu modulaire qui prend en charge le développement de communautés en ligne interactives avec des fonctionnalités de réseautage social intégrées. La plateforme se distingue par une architecture évolutive qui prend en charge les déploiements distribués. Elle utilise un système de gestion de session centralisé pour synchroniser les états des utilisateurs à travers plusieurs instances de serveur, garantissant une disponibilité cohérente. La sécurité est maintenue via un système de contrôle d'accès basé sur les rôles hiérarchique qui gère les permissions des utilisateurs et valide les opérations administratives, complété par des flux de travail de vérification par e-mail automatisés pour la gestion des identités. Le système intègre une interface de fournisseur de services enfichable qui permet l'intégration de stockage, de mise en cache et de moteurs de recherche externes pour répondre à des exigences d'infrastructure spécifiques. Il dispose également d'un design d'interface réactif pour garantir une accessibilité cohérente à travers les plateformes mobiles et de bureau. Pour la maintenance opérationnelle, la plateforme inclut un traçage de l'exécution de l'application et une journalisation de l'activité intégrés pour aider à la surveillance des performances et au dépannage.
Provides dynamic method interception for logging and performance monitoring across the application.