The framework-less Scala Dependency Injection framework
summary
Live-coding shows replacement of DI containers with pure, type-safe Scala: manual constructor wiring, then using the wire[] macro from the acquire library, producing the same bytecode as handwritten new calls. Uses lazy vals to get correct initialization order and simple scoping to create per-application or per-user singletons, modules to swap implementations, Java proxy–based interceptors for AOP, and a Play integration. Everything compiles and runs in the demos, enabling easier testing and modular configuration.
AI-written summary · about
chapters (15)
- 0:00Framework-less Scala DI
- 1:54Avoiding traditional DI
- 3:51Live coding restaurant
- 9:03Lazy vals for init order
- 10:08Acquire library automation
- 12:59Singleton dependencies in modules
- 15:29Reusable wiring modules
- 18:22Module dependencies with types
- 20:32Swapping implementations
- 25:19Adding interceptors
- 29:18Testing with interceptors
- 32:11Play Framework integration
- 35:24Alternatives and patterns
- 36:59Resources and contribution
- 38:30Q&A
related talks
40mScala, Docker and Testing oh my!
23mBuilding an Immune System in Scala
21mAutomate your work
38mKnow thy neighbours: dependency management done right.
24mAn Experiment in Continuous Deployment of JVM applications
17mEasy Build Plugins With Mill
01h 15mKeeping growing software projects under control with Gradle
47mASP. NET Basics For Experts
