Constructor selection based on @inject annotation

The constructor is selected following this rules:

1- Is there any constructor annotated with @inject?
2- Is there only one constructor?
3- Is there a no-args constructor?

The first rule to pass is used to define the constructor. In case none of this rules pass, an exception is raised.