constructor injection The dependencies are provided through a client's class constructor. setter injection The client exposes a setter method that the injector uses to inject the dependency. interface injection The dependency's interface provides an injector method that will inject the dependency into any client passed to it.