Jakarta Dependency Injection specifies a means for obtaining objects
in such a way as to maximize reusability, testability and
maintainability compared to traditional approaches such as
constructors, factories, and service locators (e.g., JNDI).
This process, known as dependency injection, is beneficial
to most nontrivial applications.