Question

Je ne suis pas fan de JSF. Spring MVC fait beaucoup de sens pour moi et je l'ai utilisé dans le passé.

Pouvez-vous me parler de lui fournir des conseils ou de l'intégrer parfaitement dans JEE6 partager et avec le CDI gotchas.

Je ne me dérange pas d'avoir un contexte d'application seulement pour les choses MVC, mais si j'utilise @Inject ou @EJB dans mes contrôleurs MVC, ce qui va aller mal?

Seam3 semble bien intéressante est-elle prête pour la production?

Était-ce utile?

La solution

  

Pouvez-vous me parler de lui fournir des conseils ou de l'intégrer parfaitement dans JEE6 et part et avec le CDI gotchas

Peut-être que je me trompe, mais je pense que vous avez en quelque sorte de faire un choix entre les CDI et la partie DI du printemps, l'un d'entre eux doit être responsable de la création d'objets pour la magie se produire. Donc, si vous voulez utiliser CDI avec Spring MVC, vous auriez à faire vos contrôleurs de haricots CDI. De JavaOne 2010: "Que faisons-nous maintenant" Java EE 6 Panel notes :

  

SpringMVC et CDI? => Techniquement possible: utiliser des grains de CDI en tant que contrôleurs (mais Reza dit qu'ils ne sont pas voir assez de demande pour SpringMVC pour faire le travail).

Je suggère aussi vivement à consulter Java EE 6 (CDI / EJB 3.1) XOR ressort du noyau Reloaded .

  

Je ne me dérange pas d'avoir un contexte d'application seulement pour les choses MVC, mais si j'utilise @Inject ou @EJB dans mes contrôleurs MVC, ce qui va aller mal?

Spring fournit un soutien intégré de « à inject » de JSR-330 et fournit également un peu de magie pour @EJB. Si c'est tout ce que vous cherchez, Spring fonctionnera. Mais c'est tout simplement pas ce que le CDI (JSR-299) vous donne.

Autres conseils

Une autre option serait d'utiliser JAX-RS en tant que contrôleur (avec la mise en oeuvre Jersey vous pouvez transférer le contrôle à un JSP), et utiliser JSP pour votre point de vue. De cette façon, vous ne seriez pas à vous soucier de l'intégration Spring avec Java EE.

Par exemple, vous pourriez avoir un HomeController:

@Path("/")
@Stateless
public class HomeController {

    @Context
    HttpRequest request; // Injects request object so you set attributes.

    @EJB // Inject your EJB
    EmployeeServiceLocal employeeService;

    @GET
    public Viewable getHomePage() {

        Employee employee = employeeService.getEmployee();
        request.setAttribute("employee", employee);
        return new Viewable("/home.jsp", null);
    }
}

Cela vous directement à une page JSP appelée home.jsp, et vous seriez en mesure d'obtenir vos données sur la JSP via l'objet de la demande. Notez que JAX-RS est utilisé pour RESTful Web Services, afin de comprendre ce qui se passe dans le code ci-dessous vous devez avoir une bonne compréhension de repos.

En utilisant CDI à partir du printemps explique comment construire un pont CDI à ressort avec un BeanFactoryPostProcessor qui importe tous les haricots d'un CDI BeanManager dans un contexte d'application Spring.

Pascal a raison de dire que vous devez faire un choix entre le printemps DI et CDI, mais avec cette approche, vous pouvez faire le choix par module .

Dans une configuration typique de WAR, il y a un module Web en utilisant un certain nombre de modules de service et de la persistance dans WEB-INF / lib. Avec le pont CDI à Spring, vous pouvez activer les modules WEB-INF / lib dans les archives de haricots CDI, tandis que le module Web est pas une archive de haricots et utilise uniquement Spring DI.

Le pont accède au CDI BeanManager via JNDI et crée un bean de fabrique ressort pour chaque grain de CDI.

J'utilise ce pont précisément pour votre cas d'utilisation: L'intégration d'une interface web Spring MVC avec un back-end Java EE 6

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top