AutoFactory: Add a way to inject directly, without Provider
- Dominant language
- Java
- Stars
- 10.6k
- Forks
- 1.2k
- Avg merge
- 6h 32m
- Merged PRs (30d)
- 13
Description
Currently it's only possible for factory parameters to be injected as Providers. In certain DI frameworks (e.g., spring), Provider#get can be slow (lots of reflection) or even dangerous (dependency graph isn't validated until request processing as opposed to startup).
Make sense to add this?
``` java
/**
* An annotation to be applied to parameters that should be provided by an
* {@linkplain javax.inject.Inject injected} value in a generated factory.
* Unlike {@link Provided}, this does not use {@link Provider} injection.
*/
@Target(PARAMETER)
public @interface Injected {}
```
Could also be an option to Provided but naming seems like it'd be clunky.
``` java
@Provided(direct=true) String hmm,
@Provided(noProvider=true) String maybe,
@Provided(provider=false) String err
```
Contributor guide
Assessment
This issue has not been assessed yet.