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)
|force-di||Core library, contains Injector Apex API and <c:di_injector> VF and Lightning Components|
|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|
Install latest version via a Salesforce DX Package
You have two options you can install via your web browser here or you can install via the Salesforce DX CLI as shown below.
sfdx plugins:install shane-sfdx-plugins sfdx shane:github:package:install -g afawcett -r force-di
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