Java-Web-Projekt-Best-Practice-Struktur
Ich bin gerade dabei eine neue Java-Web-Projekt mit Hibernate-und ein standard-MVC-Architektur.
Ich habe gerade begonnen, das layout der Projekte Struktur und, während dies zu tun, begann ich zu schauen, um zu sehen, wenn es keine standards in diesem Bereich, darüber, wo die Controller gehen sollte und in der Regel der beste Weg zu legen, alles raus. Allerdings habe ich nicht wirklich gefunden-Richtlinien.
Also, was ich bin neugierig zu wissen, ist
- Ist jeder Kenntnis über best-Practice-Richtlinien für das layout von Java-Web-Projekt?
- Hat jemand eine bestimmte Reihe von harten Regeln, die Sie immer Folgen für andere Arten von Projekten?
- Tun, neigen die Menschen zu split-Pakete durch die verschiedenen Schichten, wie z.B. Präsentations -, business-und application?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weiterhin meine Vorherige Antwort, habe ich viele web-Projekte. In Ihnen allen wird die Struktur unter src ist mehr oder weniger das gleiche. Die Pakete sind grob unterteilt in 3 logische Schichten.
Erste ist die Präsentations-Schicht, wie Sie sagte, für servlets, app, Zuhörer und Helfer.
Zweitens gibt es die Schicht des hibernate-Modell/db-access-layer. Die Dritte Schicht für die Geschäftslogik. Manchmal ist jedoch die Grenze zwischen diesen Schichten ist nicht klar. Wenn Sie die Verwendung von hibernate für den Zugriff auf die db dann das Modell definiert ist, die von hibernate-Klassen, so habe ich Sie in der gleichen Gegend wie die dao-Objekte. E. g. com.Probe.Modell hält die Ruhezustand-Daten-Objekte und com.Probe.Modell.dao halten Sie die dao-Objekte.
Wenn mit einem direkten jdbc (meist mit Feder), dann manchmal finde ich es bequemer, die Daten-Objekte näher an die business-Logik-Schicht, anstatt mit der db access Schicht.
(Der rest von dem Zeug in der Regel fällt unter die business-Schicht).
Es hängt wirklich davon ab, Ihre web-framework.
Zum Beispiel, wenn Sie verwenden, Wicket, java-Dateien und Webseiten, co-im selben Verzeichnis vorhanden sind, während
in den meisten anderen frameworks, Seiten (.jsp-Dateien oder was auch immer ist Ihre Präsentation-Motor) und
code-behind-Zeug (java-Dateien ) sind komplett getrennt.
So Lesen Sie die Dokumentation, die Sie mit Ihrem framework (Spring MVC, Struts, JSF.e.t.c).
Ein weiterer guter Vorschlag ist die Verwendung von Maven-Archetypen zu generieren, ein Skelett für Ihre spezifische Rahmenbedingungen. Einige web-frameworks (z.B. Naht) haben sogar Ihren eigenen code generation tool legt die Grundlagen für Ihr web-Projekt.
Meine einzige gute Vorschlag (dass ist nicht erwähnt von Yoni) für das src-Verzeichnis ist
um Pakete nach zu geschäftlichen Zwecken und NICHT nach Typ/layer
Das bedeutet, dass Pakete für
und NICHT
Die zweite Struktur ist zu allgemein, und neigt dazu, zu lösen, um riesige Pakete mit nicht verwandten Sachen und ist schwer zu pflegen.
Ersten, die Folgen der konventionellen Struktur eine beliebte ide, ala Eclipse, Netbeans, etc.
In Eclipse zum Beispiel, alles angeordnet ist bereits mit einer WEB-INF und META-INF-Ordner, also die Verpackung und die Bereitstellung ist einfach. Klassen-source-code (in der Regel unter src) wird automatisch kopiert, um WEB-INF/classes.
Es gibt ein paar andere überlegungen:
Verwenden Sie die Maven-archetype-webapp-layout.
Ich habe den
java
Ordner in dem Beispiel hier, vielleicht war es offensichtlich, aber es war Links im obigen link aus irgendeinem Grund.