Generic dependency injection (DI) library with support for injecting Apex, Visualforce, Lightning, and Flows at runtime.
- General overview of the library features, configuration and use of Injectors (blog)
- Using the library to aid with Test Driven Development in Apex (blog)
- Dependency Injection, Flows, and Force DI (blog)
- Adopting Dependency Injection (webinar)
- Understanding the Value of Dependency Injection in the Lightning Platform (DF18 session)
The "core" framework is found in this project. This includes the following:
|force-di||Core library, contains Injector Apex API and <c:di_injector> VF and Lightning Components|
The "samples" of how to use the framework can be found in the Force-DI Samples project.
|force-app-1||Sample application using the API and Components to inject Apex, VF and Lightning at runtime|
|force-app-2||Sample package providing impls for various bindings above|
|force-app-3||Sample package providing impls for various bindings above|
|force-di-trigger-demo||Sample basic trigger framework leveraging the API|
Other Resources on Dependency Injection Design Pattern
Some of these blogs and videos are not necessarily Salesforce-specific but give good insights on use cases and purpose behind this design pattern.
- Dependency Injection Overview by Anthony Ferrara
- Advanced Apex Design Patterns by Andy Fawcett
- Writing True Unit Tests Using Dependency Injection and Mocking by Alex Tennant
- Injection Design Pattern by Martin Fowler
- Dependency Injection is not the same as Dependency Inversion by Derick Bailey
- Dependency Injection by Thorben Janssen