2010-07-07 5 views
8

Ich baue gerade eine bestehende PHP-Anwendung mit Java neu. Ich habe daher eine existierende Frontend-GUI und ein existierendes Datenbankschema, mit dem ich arbeite. HierWie passt Spring in meine Anwendungsarchitektur?

ist die Technologie-Stack Ich arbeite auf:

  1. jQuery, clientseitige
  2. Wicket, Front-End-
  3. Spring, ???
  4. Hibernate, ORM
  5. MySQL, Datenbank

Vor sowohl Wicket in Aktion zu Spring Lesen und der Hibernate Dokumentation, stellte ich mir die beiden zusammen durch mein eigenes Geschäft Verdrahtung Logik. Ich habe Erfahrung mit JBoss Seam, aber mir wurde gesagt, dass der Frühling kaum vergleichbar ist (obwohl die Dokumentation etwas anderes vorschlägt, IMO). Ich habe kein Buch über Frühling zu meiner Leseliste hinzugefügt (ich habe noch kein passendes mit guten Kritiken gefunden), ich bin ratlos.

Welche Vorteile bietet Spring in diesem Technologie-Stack?

Subjektive & optional Follow-up Frage: Welche Referenzmaterial (Buch, Website, usw.) wird mich mit dem Teil des Frühlings 3 loszulegen ich nutzen kann?

+0

Der Frühling sitzt nicht wirklich so im Stapel. In einem Standard-3-Layer-Web-Stack umfasst es DAO-, Service- und View-Layer. – ireddick

+0

Nun, ich benutze es definitiv nicht für die Aussicht ... Ich nutze Wicket bereits voll aus. – Dolph

+0

Ich habe hauptsächlich über Spring's Abhängigkeitsinjektion/-management gesprochen. – ireddick

Antwort

2

Zuerst Sie Ihre Web-Anwendung ohne Frühling machen. Aber der Frühling wird die Dinge sehr erleichtern. Frühlingsrahmen ist ein leichtes, nicht-invasives. Der Frühling ist wie eine Art Dirigent. Unter anderem Frühling hilft Ihnen, in:

  1. Um Ihre Objekte lose gekoppelt.Dies macht Ihre Anwendung flexibler und offen für zukünftige Änderungen.

  2. Leistungsstarke Unterstützung für Transaktionen über die AOP (Aspect Oriented Programming).

  3. Objekt-Relationales Mapping (ORM) Integrationsmodul. Spring versucht nicht, eine eigene ORM-Lösung zu implementieren, sondern bietet mehrere bekannte ORM-Frameworks an, darunter Hibernate, Java Persistence API, Java Data Objects und iBATIS SQL Maps. Das Transaktionsmanagement von Spring unterstützt jedes dieser ORM-Frameworks sowie JDBC.

  4. Das Spring MVC-Framework. Obwohl Spring in mehrere gängige MVC-Frameworks integriert ist, verfügt es auch über ein eigenes, sehr leistungsfähiges MVC-Framework, das die lose gekoppelten Techniken von Spring in der Webebene einer Anwendung unterstützt.

Ein gutes Buch über Spring: Pro Frühling

2

Feder, wie in this review erwähnt, ist nicht-invasiv. Es verdrahtet nur Ihre Anwendungskomponenten. Und bietet nützliche Klassen, die die Verwendung anderer Frameworks erleichtern (JMS, JPA usw.). Spring zwingt Sie nicht, seine Klassen oder Schnittstellen überall zu verwenden.

Was es behandelt, ist die Erstellung Ihrer Komponenten (Objekte), so dass Sie auf Abhängigkeiten einer Klasse verweisen können, ohne sie zu instanziieren. I.e. Sie sagen was Ihre Klasse benötigt, nicht wie es erhalten wird. Dies macht die Anwendung sehr flexibel.

Das ist kurz - für mehr, lesen Sie den verlinkten Artikel. Es geht nicht um die neueste Version, aber das macht nichts.

2

@Dolph im einfachstenen Begriff, denken Sie an Frühling als Anwendungs-Framework auf dem höchsten Grad. Dieses "Framework" stellt mehrere "Komponenten-Buckets" zur Verfügung, in die Sie verschiedene Arten von Implementierungen problemlos einbinden können. Für ORM können Sie beispielsweise Hibernate über JPA oder TopLink verwenden, für das Frontend können Sie Wicket über Struts oder SpringMVC usw. auswählen.

Die ganze Schönheit dieser (abgesehen von all den Goodies in anderen Posts) ist es ermöglicht es Ihnen leicht, diese Implementierungen in der Zukunft leicht austauschen. So können Sie Hibernate eines Tages im Wesentlichen ausreißen und durch TopLink ersetzen, und es wird nie zu anderen Komponenten Ripple-Effekt verursachen.

Eine weitere Schönheit der Verwendung von Spring ist Ihr Code wird weniger Unordnung und hat lose Abhängigkeiten mit anderen Klassen, weil Sie weniger Zeit selbst neue Objekte erstellen, Spring behandelt das für Sie. Das heißt, Sie werden schnell erkennen, wie einfach es ist, Ihren Code zu testen, weil Ihre zu testende API sehr atomar wird. Dies ist einer der Hauptgründe, warum Leute beim Schreiben von Testfällen entmutigt sind, weil sie schnell erkennen, dass sie eine ganze Menge Dinge konstruieren müssen, nur um das zu testen, damit sie eine API testen können. Aus diesem Grund ist der gesamte Prozess spröde, stellen Sie sich vor, wenn Sie diese API ändern, müssen Sie alles rekonstruieren, bevor Sie es erneut testen.

Pro Frühling Buch ist gut, von @JLBarros erwähnt. Ich mag Spring in Action sehr gerne. Es ist sehr leicht zu lesen, als ich mit Spring anfing. Dies ist wahrscheinlich ein Nachschlagewerk, das ich von Haut zu Haut gelesen habe.

+0

Ich mag die * In Action * -Serie, aber ich war nicht überzeugt von dem Buch nach dem Lesen des Inhaltsverzeichnisses ... aber andererseits hatte ich keine Ahnung, was ich von Spring wollte, also wusste ich nicht was zu suchen! Die zweite Ausgabe wird voraussichtlich im Dezember 2010 erscheinen. – Dolph

+0

Die In Action hat keineswegs alle Details über Spring. Dafür müssen Sie die Quellenquellen-Website direkt beziehen, da sie die vollständigste Dokumentation haben, die ich je gesehen habe. The In Action hilft mir, sofort loszulegen und die Erklärungen sind sehr einfach zu verstehen. Wenn ich danach mehr Informationen benötige, werde ich um Quellquelle herum graben. – limc

Verwandte Themen