Quel est votre “meilleure pratique” pour la première Java EE projet pour le Printemps?[fermé]

StackOverflow https://stackoverflow.com/questions/8569

  •  08-06-2019
  •  | 
  •  

Question

Je suis en train d'essayer d'obtenir dans la Java EE développement avec le framework Spring.Comme je suis nouveau au Printemps, il est difficile d'imaginer comment une bonne exécution du projet devrait commencer.

Vous disposez de tous les meilleures pratiques, tipps ou grands N'Démunis pour un débutant?Comment avez-vous commencé avec le Printemps - grand projet ou petit tutoriel-comme des applications?Quelle technologie utilisez-vous pour le droit de suite:AOP, complexe, Hibernate...

Était-ce utile?

La solution

Petite astuce que j'ai trouvé utile de modulariser et clairement de l'étiquette de mon Ressort contexte xml des fichiers sur la base de l'application de préoccupation.Voici un exemple pour une application web, j'ai travaillé sur:

  • MyProject / src / main / resources / spring /
    • datasource.xml - Ma seule source de données bean.
    • persistence.xml - Mon DAOs/Dépôts.Dépend datasource.xml les haricots.
    • services.xml - La couche de Service mises en œuvre.Ce sont généralement les fèves que j'applique transactionality à l'aide de l'AOP.Dépend persistence.xml les haricots.
    • controllers.xml - Mon contrôleurs Spring MVC.Dépend services.xml les haricots.
    • views.xml - Mon point de vue, les implémentations.

Cette liste n'est ni parfait ni exhaustive, mais j'espère que ça illustre bien le propos.Choisissez n'importe quelle stratégie de nommage et de granularité qui fonctionne le mieux pour vous.

Dans mon (limitée) de l'expérience, j'ai vu cette approche par le rendement des avantages suivants:

Plus claire de l'architecture

Clairement nommé contexte fichiers donne à ceux qui ne connaissent pas votre projet de la structure raisonnable endroit pour commencer à chercher le haricot définitions.Peut rendre la détection circulaire indésirables dépendances un peu plus facile.

Contribue à la conception d'un domaine

Si vous souhaitez ajouter une fève de définition, mais il ne rentre pas bien dans tout de votre contexte fichiers, peut-être il ya un nouveau concept ou une préoccupation émergente?Exemples:

  • Supposons que vous voulez faire de votre couche de Service transactionnel avec l'AOP.Pensez-vous ajouter les haricots définitions services.xml, ou les mettre dans leur propre transactionPolicy.xml?En parler avec votre équipe.Si votre politique de transaction être enfichable?
  • Ajouter Acegi/Printemps de Sécurité haricots à votre controllers.xml fichier ou créer un security.xml fichier de contexte?Vous avez différentes exigences de sécurité pour les différents déploiements et des milieux?

Les tests d'intégration

Vous pouvez câbler un sous-ensemble de votre application pour le test d'intégration (ex:étant donné les fichiers ci-dessus, afin de tester la base de données, vous devez créer seulement datasource.xml et persistence.xml les haricots).

Plus précisément, vous pouvez annoter un test d'intégration de la classe en tant que telle:

@ContextConfiguration(locations = { "/spring/datasource.xml" , "/spring/persistence.xml" })

Fonctionne bien avec le Printemps de l'IDE Haricots Graphique

Avoir beaucoup de concentré et de bien-nommé contexte de fichiers permet de créer facilement personnalisé BeansConfigSets de visualiser les couches de votre application à l'aide de Spring IDE Haricots Graphique.J'ai utilisé ce avant de donner les nouveaux membres de l'équipe un aperçu de haut niveau de notre organisation.

Autres conseils

Concentrer d'abord sur le coeur du Printemps:L'Injection De Dépendance.Une fois que vous voyez tous les moyens que le DI peut être utilisé, puis commencer à penser sur les pièces les plus intéressantes comme AOP, l'accès à distance, JDBC Modèles etc.Donc, mon meilleur conseil est de laisser votre utilisation de Printemps croître à partir de la base.

Les meilleures pratiques?Si vous êtes à l'aide de la norme XML de config, gérer la taille des fichiers individuels et de les commenter de manière judicieuse.Vous pouvez penser que vous et les autres vous comprenez parfaitement votre bean définitions, mais dans la pratique, ils sont un peu plus difficile de revenir à de plain old java code.

Bonne chance!

Tout d'abord, le Printemps est sur la modularité et qui fonctionne le mieux si l'on se concentre sur l'écriture de petits éléments qui font une chose et le faire bien.

Si vous suivez les meilleures pratiques en général, comme:

  • La définition d'une interface plutôt que les classes abstraites
  • Faire des types immuables
  • Garder les dépendances aussi peu que possible pour une seule classe.
  • Chaque classe doit faire une chose et le faire bien.Big monolithique classes sucer, ils sont difficiles à tester, et difficile à utiliser.

Si vos pièces sont petites et suivre les dogmes ci-dessus, ils doivent être faciles à fil et de jouer avec d'autres trucs.Les points ci-dessus sont naturellement également vrai de Printemps de la structure elle-même.

PS

Ne pas écouter les points ci-dessus, ils parlent de la façon de faire quoi que ce soit.Son plus important d'apprendre à penser plutôt que de faire quelque chose.L'homme peut penser, la répétition de quelque chose n'est pas très malin, la pensée est.

J'ai effectivement bien aimé Printemps..C'était une brise fraîche de l'air dans votre moyenne J2EE Java Beans..

Je recommande la mise en œuvre de l'exemple de Printemps de l'offre:

http://static.springframework.org/docs/Spring-MVC-step-by-step/

Aussi, j'ai décidé d'aller full monty et ajouté à Hibernate de mon Ressort de l'application ;), parce que le Printemps fournit un excellent support pour Hibernate...:)

J'ai un N'est PAS, cependant, que j'ai appris à la dure (produit en cours de production)...Si vous ne mettez en œuvre le Contrôleur d'interface, et de retourner une ModelAndView objet avec certaines données fournie avec l'interface, le Printemps ne garbadge de collecter des ressources, pour la tente de mettre en cache les données.Donc attention à mettre des grosses données dans ces ModelAndView objets, parce qu'ils vont de porcs de votre serveur de mémoire aussi longtemps que le serveur est dans l'air dès que la page a été vue...

Commencez ici - en fait, je pense que c'est parmi les meilleurs Logiciels Dev livres que j'ai lus.
Expert Spring MVC Et Web de Flux de

Apprendre la nouvelle Annotation à base de configuration pour les classes MVC.Cela fait partie de Spring 2.5.À l'aide de l'Annotation à base de classes est en train de faire écrire des tests Unitaires un diable de beaucoup plus facile.Également être en mesure de réduire la quantité de XML est une bonne chose.

Oh oui les Tests Unitaires - si vous utilisez le Printemps, vous avez intérêt à avoir des Tests Unitaires.:) Écrire des tests Unitaires pour l'ensemble de votre site Web et le Service de la Couche de classes.

Lire sur Domain Driven Design.Le fait que vous pouvez utiliser Domaine de classes d'Objets, à tous les niveaux du Ressort de l'Application signifie que vous allez avoir un TRÈS puissant Modèle de Domaine.En tirer profit.

Toutefois, lorsque l'utilisation de votre Domaine de classes d'Objets pour former la population, vous aurez envie de prendre en considération les récents problèmes de sécurité autour du Framework Spring. Une discussion sur le Côté Serveur révèle le moyen de fermer le trou dans les commentaires.

Une bonne façon de commencer est de se concentrer sur le "Springframework".Le Printemps portefeuille a progressé à un gros tas de projets autour de divers aspects de Logiciels d'Entreprise.Bâton à la carotte, au début et à essayer de saisir les concepts. Télécharger la dernière binaires et découvrez Printemps petclinic exemple une fois que vous êtes familier avec le cœur.Il donne un bon aperçu des différents projets de SpringSource a à offrir.

Bien que la documentation est très bonne, Je vous recommande un livre après avoir saisir les concepts de base.Ce que j'ai trouvé problématique avec la documentation, c'est qu'il n'est pas en profondeur et ne peux pas vous donner tous les détails dont vous avez besoin.

"...Quelle technologie utilisez-vous pour le droit de suite:AOP, complexe, Hibernate..." - je dirais une meilleure question serait de demander à ce que les gens ne l'utilisez pas tout de suite.J'ajouterais les exemples que vous citez à cette liste.

Spring MVC et JDBC modèle serait mon départ recommandations.Vous pouvez aller un long chemin juste avec celles-ci.

Ma recommandation serait de suivre le Printemps recommandations architecturales fidèlement.Utiliser leur superposition des idées.Assurez-vous que votre site web de la couche est complètement détachable du reste.Vous faites cela en laissant la couche web d'interagir avec le back-end seulement à travers la couche de service.

Si vous souhaitez réutiliser cette couche de service, une bonne recommandation est de l'exposer à l'aide de Printemps "premier contrat" services web.Si vous commencez avec les messages XML que vous passer d'avant en arrière, votre client et le serveur peuvent être complètement découplé.

L'IDE avec le meilleur des ressorts est IntelliJ.C'est la peine de dépenser un peu d'argent.

Alors que sa fait des années depuis que j'ai utilisé le printemps, et je ne peux pas dire que je suis un fan de lui, je sais que l'Application Fusible outil (https://java.net/projects/appfuse/) a été utile pour aider les gens à bootstrap en termes de production de toutes les artefacts, que vous avez besoin pour vous lancer.

Le printemps est aussi très bien sur les tests unitaires et donc la capacité de test de vos classes.Que, fondamentalement signifie penser à la modularisation, la séparation des préoccupations, de la référence d'une classe par l'intermédiaire d'interfaces, etc.

Si vous cherchez juste à barboter dans la un peu et voir si vous l'aimez, je vous recommande de commencer avec le DAO couche, à l'aide de Spring JDBC et/ou la mise en veille prolongée.Ce sera de vous exposer à un grand nombre de concepts fondamentaux, mais le faire d'une manière qui est facile à isoler du reste de votre application.C'est le chemin que j'ai suivi, et c'était bon échauffement avant d'entrer dans la construction d'une application complète avec le Printemps.

Avec la sortie de Spring 2.5 et 3.0, je pense que l'un des plus importants meilleures pratiques à prendre avantage de maintenant sont du Ressort des annotations.Les Annotations pour les Contrôleurs, les Services et les Dépôts peuvent vous faire économiser une tonne de temps, vous permettre de vous concentrer sur la logique métier de votre application, et peut potentiellement tous vous faire tous de votre objet plain old Java objects (Pojo).

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