exported module provides an interface that its users must implement in order to get the dependencies at runtime. • Setter Injection • in which the dependent module exposes a setter method that the framework uses to inject the dependency. • Constructor Injection • in which the dependencies are provided through the class constructor.