2009-03-20 7 views

Répondre

8

Aucun problème majeur. Le printemps a été particulièrement bénéfique pour:

  • Faire toute la plomberie de configuration cohérente et simple
  • injection de dépendances pour soutenir une meilleure affacturage code
  • déclarative "Open Session in View" fonctionnalité pour Hibernate
  • déclarative Transaction Démarcation
  • Le projet Acegi (maintenant Spring Security) a facilité l'intégration d'un modèle de sécurité personnalisé
  • Le support d'accès aux données Spring supprime le besoin d'avoir beaucoup de standard à partir de n'importe quel accès JDBC - peut-être pas un tel boost pour l'utilisation d'Hibernate, mais nous avions un mélange des deux. Il vous permet également d'utiliser JDBC & Mise en veille prolongée ensemble assez transparente
1

De toute évidence, il existe un million de façons de construire une application comme celle-ci, à la fois dans le monde des frameworks java et avec des choses comme Rails ou Django. Un grand argument de vente pour moi est que les deux printemps et hibernate sont devenus des standards de facto dans le monde java, donc ils se qualifient définitivement comme "choses que vous devez savoir" (je suis demandé à chaque entretien d'embauche). Printemps plus que Hibernate.

Pour profiter de la valeur du printemps, il a fallu quelques applications au printemps avant que cela ne devienne logique pour moi. Il applique des modules de code indépendants et un certain style de conception de composants qui facilite les tests. Je suggérerais que vous alliez juste avec lui et ayez le sens de la valeur de l'utilisation.

J'ai des sentiments partagés sur Hibernate, bien qu'il soit important d'utiliser une sorte de couche db, donc vous pouvez aussi bien.

Voir aussi this question.

4

En plus de ce qui a été dit jusqu'à présent, je me concentrerais sur les annotations de nouveau style pour les deux printemps (par exemple @Controller) et Hibernate (par exemple @Entity) . Cela réduira encore plus votre base de code en vous laissant avec moins de code à maintenir. À la baisse, il y a une courbe d'apprentissage assez importante, mais finalement la leçon que j'apprends encore et encore, c'est que les avantages de Spring + Hibernate l'emportent de loin sur les coûts (de la courbe d'apprentissage). Il vous suffit d'écrire beaucoup moins de code pour vous concentrer sur votre activité.

3

+1 printemps + mise en veille prolongée ......

100k utilisateurs ne sont pas de taille moyenne .... qui est énorme. Avec le ressort, vous pouvez forcer le codeur à coder les interfaces, ce qui augmente la testabilité. C'est l'avantage que je n'entends pas les gens parler beaucoup.

prendre un memcached regard aux données mises en cache memcached .....

+0

100K utilisateurs en même temps ou au total, c'est la question;) – krosenvold

+0

vous avez raison !! –

2

Comme Julien Chastang dit, vous devez prendre en compte la courbe d'apprentissage dans vos estimations, si cela est votre premier projet.Nous avons échoué à faire sur notre premier essai et a fini par avoir à régler une grande partie de notre planification, car plusieurs aspects de la mise en veille prolongée étaient « difficiles » (par exemple. Pris un certain temps) pour comprendre. Un conseil spécifique que je peux donner en fonction d'un problème que nous avons rencontré est: si vous avez besoin d'écrire du SQL complexe, et que vous ne voulez pas passer du temps à trouver comment obtenir de telles requêtes en utilisant HQL ou d'autres offres au sein d'Hibernate, faites-le fonctionner d'abord dans SQL à la vanille, puis revenez plus tard et remettez-le à nouveau dans Hibernate.

1

Il y a des situations avec Hibernate où la création d'un objet particulier à la cartographie relationnelle ou l'écriture d'une requête HQL, est très difficile. Cependant, vous allez rencontrer 1 chose comme ça sur 10, et plus votre base de données sera normalisée, mieux vous serez. Ça en vaut la peine.

Tout nouveau projet Web Java devrait utiliser Spring MVC (2.5+ avec annotations) et Hibernate.

1

Il y a une grande surcharge de compréhension pour hiberner et au printemps. Je le suggérerais seulement si vous avez beaucoup de temps ou si vous avez besoin d'un développeur java/spring/hibernate expérimenté. Avec un projet printanier une fois que vous l'avez fait, vous pouvez ignorer les parties du ressort et vous concentrer sur la conception de la page et de la logique. Hibernate n'est pas si difficile. HQL est une demande plus difficile. Je consacre la majeure partie de mon temps au niveau du haricot et du JSF. En comparant cette couche de mon projet à des partenaires qui se débrouillent dans JSP, je suis heureux d'être à l'aise avec JSF. J'ai facilement basculé vers Oracle à partir de l'implémentation initiale dans MySQL, ce qui prouve qu'Hibernate gère bien l'abstraction.

3

parlant techincally je l'ai, je l'ai déployé des applications commerciales avec des numéros de milliers à quelques centaines de milliers à l'aide de printemps, mise en veille prolongée et les deux. Du point de vue de la gestion dans un cas, j'avais une équipe qui était de bons technologues, donc ils ont réussi à réécrire une application avec le printemps et l'hibernation mais ... ils sont devenus fous avec les interfaces (chaque nouvel objet au modèle nécessaire 16 interfaces), abusé l'AOP donc les transactions et l'exploitation forestière étaient presque impossibles à suivre et les traces de pile étaient vides de sens, les outils utilisés pour cartographier les fichiers mise en veille prolongée sans comprendre pleinement ce qui était fait (dans certains cas, joindre 4 tables pour ce qui aurait pu un entité simple, et une variété de questions qui a fait la demande résultant beaucoup plus difficile à améliorer, corriger, corriger, même la configuration de l'environnement du développeur ....)

mon 2c

Questions connexes