Let's explore various possible ways of using the Scala language to perform dependency injection without the need for any framework or run-time magic (Looking at you Guice). Just safe compile-time dependency wiring.
- Cake Pattern
- Thin cake pattern
- Constructor Parameter
- Macwire (uses MACROS)
- Abstract dependencies
- Structural typing (as class constructor parameter)
- Implicits
- Reader Monad