Quelle est la différence entre @Inject et @EJB

Je suis présentement en train d'apprendre le Java EE 6 modèles de composants et de me confondre avec la dernière injection de dépendance mécanisme. Voici donc mes questions:

1) Quelle est la différence entre @Inject et @EJB

2) Si j'ai un simple POJO qui contient un autre Pojo (dont l'un d'eux est le code DAO), quel serait le meilleur choix: @Inject ou @EJB?

Puis-je mélanger @Inject et @EJB?

Un exemple serait:

  • ClassA implémente InterfaceA et a
    une instance de ClassA_Adaptor

  • ClassA_Adaptor implémente InterfaceAB
    et a une instance de ClassB

  • ClassB implémente InterfaceB et a
    une instance de ClassB_Adaptor et un
    exemple DAO_ClassB

  • ClassB_Adaptor implémente InterfaceB
    et a une instance de ClassC

  • ClassC implémente InterfaceBC et a
    une instance de WebService_ClassC

  • DAO_ClassB va utiliser JPA 2.0
    (@PersistenceContext)

Je voudrais injecter tous d'entre eux, y compris le DAO et le WebService.

3) Est-ce une mauvaise approche à utiliser uniquement transactionnelle pour certaines opérations, mais pas pour tous?

Comme un exemple: Certaines méthodes de la DAO_ClassB sont typique de votre requête, alors que d'autres méthodes sont "écrire" des méthodes. Est-ce mauvais pour ne pas envelopper "LIRE" méthodes de la transaction?

À ma connaissance, le DAO_ClassB peut être enveloppé avec des transactions à l'aide de @EJB (injecter le DAO_ClassB et de faire toutes les méthodes transactionnelles). Comment puis-je contrôler?

Désolé si certaines questions sont confus parce que je sais que des bribes et des morceaux de Java EE 6 nouveau modèle de composant.

InformationsquelleAutor xandross | 2011-05-04