force-di
force-di copied to clipboard
Generic DI library with support for Apex, Triggers, Visualforce and Lightning
Force DI
Generic dependency injection (DI) library with support for injecting Apex, Visualforce, Lightning, and Flows at runtime.
Documentation
- 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)
Project Folders
The "core" framework is found in this project. This includes the following:
Folder | Description |
---|---|
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.
Folder | Description |
---|---|
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.
Videos
- 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
Blogs
- Injection Design Pattern by Martin Fowler
- Dependency Injection is not the same as Dependency Inversion by Derick Bailey
- Dependency Injection by Thorben Janssen