Automatic Dependency Injection System, but without build_runner :)
[tag]: AutoInject instance identity. [on]: Helps with instance registration. [paramObservers]: List of functions that listen and transform
parameters while they are being parsed when requested by the get() method.
The CommonModule abstract class defines the structure for creating modules
that can register their own dependency injections and route configurations.
This allows for modularization and better organization of code in a Vaden-based
application.
Specifies the bind type for a component in the dependency injection container.
This annotation is used to define how a component should be bound in the
dependency injection container, such as whether it should be a singleton,
lazy singleton, or instance.
Example:
AutoInjecton Exception for Injector Already Commited.
Store all parent classNames
message : message of exception stackTrace : traces of exception injectorTag : tag of the current injector
AutoInjection Exception for Unregistered instance.
Store all parent classNames
message : message of exception stackTrace : traces of exception classNames : all parent class names
AutoInjection Exception thrown when an addInjector(..., resolveUpward: true)
edge would create a cycle in the upward (ancestor) resolution chain.
Upward resolution must form a tree: a child resolves against its ancestor as
a fallback, never the other way around. A mutual upward link would make
resolution recurse forever, so it is rejected eagerly at composition time.
injectorTag : tag of the injector at which the cycle was detected