The software design project. Implementing self-made DI-container.
- External metadata of container-managed Java classes (XML format)
- Classes for initializing fields
- Name (required if there are several different configurations for one basic interface)
- Object lifecycle type (prototype, singleton, thread)
- Initialization parameters (for set methods)
- Constructor Parameters
- Java API for interacting with a DI container (getting objects, monitoring)
- References to created classes are stored inside the container
- Support for standard java annotations: Inject, Provider, Named. The Inject should work through interfaces (not specific classes)
- In case of an error (exception, logical error), the backtrace for the service should be returned