Où dois-je déclarer mes ressources CDI?
-
26-09-2019 - |
Question
JSR-299 (CDI) présente le (malheureusement nommé) concept d'une ressource: http://docs.jboss.org/weld/reference/1.0.0/en-US/html/resources.html#d0e4373
Vous pouvez penser à une ressource dans cette nomenclature comme un pont entre la marque Java EE 6 d'injection de dépendance (@EJB, @Resource, @PersistenceContext, etc.) et la marque de l'injection de dépendance de CDI.
Le sens général semble être que quelque part (et ce sera la racine de ma question), vous déclarez ce qui équivaut à une classe de pont: il contient des champs annotés à la fois avec @EJB Java EE ou annotations @PersistenceContext ou @Resource et CDI annotations @Produces. L'effet net est que Java EE 6 injecte un contexte de persistance, par exemple, où il est demandé, et CDI reconnaît que PersistenceContext comme injecté source pour les futures injections la ligne (traitées par @Inject).
Ma question est: quel est le consensus de la communauté - ou est-il un - sur:
- ce que cette classe de pont devrait être nommé
- où cette classe de pont doit vivre
- s'il est préférable de localiser tout ce genre de choses dans une classe ou de faire plusieurs d'entre eux
...
De gauche à mes propres appareils, je pensais à déclarer une seule classe appelée CDIResources
et à l'aide que comme un véritable lieu de relier DI Java EE avec DI CDI. De nombreux exemples font quelque chose de similaire, mais je ne suis pas certain qu'ils soient « justes » des exemples ou si c'est une bonne façon de le faire.
Merci.
La solution
Cela semble très subjectif, mais I préfèrent faire plusieurs classes et I appel FooProducer
une classe produisant un Foo
.