As the name of this strategy let you understand wiring is done automatically for most classes.
For that Launchpad framework will use the reflection API to resolve dependencies. Depending on the dependency the resolver will use a different strategy:
If it is a class it will use the reflection API to find the class and implement it.
If it is a basic type or has no type it will search with the name of the parameter inside the container for a value.
If no value is found then the resolver will search for a default value.
Biding classes
Some dependencies can be abstract classes or interfaces.
In that case it won't be possible to instantiate them. That's for that reason we introduced class binding.
When you bind a class to another the bound class will be instantiated each type we try to instantiate the original class.
To bind a class you need to override the define method and use the method bind for each class you want to bind: