Question

Je pense à la possibilité d'utiliser Spring MVC avec le cadre Vaadin. Y a-t-il des moyens documentés de les faire jouer bien ensemble? Est-ce aussi une bonne idée de les utiliser ensemble? concernant les performances; Je vais exécuter l'application sur un serveur dédié.

Pour rendre ma question un peu plus claire, comment puis-je retourner un modèle etView à partir d'un contrôleur Spring MVC qui rendra à l'aide de Vaadin et peut accéder à toutes les données du modèle.

Était-ce utile?

La solution

Le soutien au printemps pour Vaadin est assez nouveau, mais il y a récemment eu beaucoup de discussions sur le forum et certains l'ont testé. Semble fonctionner. Il y a un article sur le wiki Vaadin à ce sujet, et quelques fils sur le forum parlant de l'intégration Vaadin + printemps:

Wiki: intégration printanier
Forum: La boîte à outils Mill peut-elle être intégrée à l'application de printemps
Forum: problème d'intégration de printemps
Forum: travailler avec le printemps
Forum: intégration de printemps

Autres conseils

Je ne sais pas si c'est un choix prudent d'intégrer Vaadin avec le printemps MVC. Il est un gaspillage. MVC est destiné aux applications Web typiques basées sur des pages où, comme Vaadin est plus basé sur l'état comme une application de bureau. Je ferais généralement une compétition au milieu et j'aurais mon niveau commercial et ma couche d'accès aux données au printemps et j'utiliserais Vaadin tel quel.

Voir ce fil sur le forum Vaadin pour mon AutowiringApplicationServlet Solution, y compris un exemple d'application de guerre.

D'accord avec DHRBO.

Ce n'est pas sage d'utiliser Spring MVC, plus encore avec WebFlow avec Vaadin. Vaadin est un autre cadre Web-App.

Si vous voulez l'idée de "Spring MVC" dans votre projet Vaadin, intégrez-le avec le printemps, les haricots et le contexte. De cette façon, vous pouvez obtenir une séparation claire entre les contrôleurs, l'interface utilisateur (Vaadin) et les modèles (intégrer avec Hibernate / Orms)

Voici un article sur l'intégration de la couche Spring Service avec Vaadin. Il ne se rapporte pas directement à Spring MVC que la question initiale concernait, mais il peut toujours être un pointeur pour les autres lecteurs qui recherchent l'intégration de Vaadin Spring.

http://psponcoding.blogspot.com/2011/03/vaadin-spring-integration.html

org.springframework.web.servlet.mvc.Controllerhandlerequest de " HttpServletRequest et HttpServletResponse comme paramètres. À partir de ceux-ci, vous ne pouvez pas traiter le fragment URI. En tant que tel, le contrôleur n'est pas adapté pour contrôler les demandes basées sur le fragment URI.

Dans mon application, j'ai implémenté un concept très similaire au contrôleur Spring. Mon application a toujours une notion de «vues» et de «modèle». Chaque vue est implémentée dans une classe distincte et est affichée dans un bloc central de la page. Je voulais centraliser la logique du traitement URL à cette classe, alors j'ai créé une classe AbstractControllerEntry:

public static abstract class AbstractControllerEntry {
    public abstract boolean matches(String fragment);
    public abstract void open(MainWindow window, String fragment);
}

avec plusieurs sous-classes de commodité telles que ConstantEntry, PrefixEntry et RegexEntry.

Chaque classe de vue a une méthode statique, qui revient AbstractControllerEntry. La collecte de toutes les entrées est conservée dans un tableau statique à l'intérieur de MyController classe (pas un contrôleur MVC à ressort). Lors du changement de fragment (voir Urifragmentutility), J'imagine toutes les entrées, et pour la première fois, qui correspond, j'appellerai ouverte. Toute autre logique, comme la recherche de l'objet modèle, est à l'intérieur de la classe de vue, dans le AbstractControllerEntry implémenté.

En plus, il existe une autre méthode statique pour générer le fragment URI dans la classe de vue, de sorte que chaque référence à une vue est une référence réelle à une classe, il s'agit d'une solution aux liens cassés. Et chaque vue a une méthode d'instance pour obtenir un fragment pour la vue actuelle, qui est vérifiée pour correspondre à une entrée de contrôleur pour augmenter la robustesse.

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