There are two types of dependency injection approaches; runtime and compile-time (static) DIs. Run-time Dependency Injection Google Guice is a popular run-time dependency injection libraries in Java, which is also used in Presto to construct a distributed SQL engine consisting of hundreds of classes. Guice itself does not manage the lifecycle of objects and binding configurations, so Presto team a
![DI Framework Comparison · Airframe](https://cdn-ak-scissors.b.st-hatena.com/image/square/466440587d5325b91063dbfabc9a4ebbfc3b0a83/height=288;version=1;width=512/https%3A%2F%2Fwvlet.org%2Fairframe%2Fimg%2Fposter.png)