Wie passt Spring in meine Anwendungsarchitektur?

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.

Hier ist der Technologie-Stack, auf den ich hinarbeite:

  1. jQuery, clientseitig
  2. Wicket, Front-End
  3. Frühling, ???
  4. Ruhezustand, ORM
  5. MySQL, Datenbank

Bevor ich sowohl in Wicket In Action als auch in der Hibernate-Dokumentation über Spring gelesen habe, habe ich mir überlegt, die beiden durch meine eigene Geschäftslogik miteinander zu verbinden. 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 Spring auf meiner Leseliste (ich habe noch kein passendes mit guten Reviews gefunden), ich bin ratlos.

Welche Vorteile bietet Spring in diesem Technologie-Stack?

Subjektive & amp; optionale Folgefrage : Welches Nachschlagewerk (Buch, Webseite, etc.) wird mich mit dem Teil von Spring 3 beginnen, den ich vielleicht nutze?

    
Dolph 07.07.2010, 04:16
quelle

4 Antworten

2

Erstens können Sie Ihre Webanwendung ohne Spring erstellen. 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 hilft Ihnen Spring bei:

  1. Damit Ihre Objekte locker verbunden bleiben. Dadurch wird Ihre Anwendung flexibler und offen für zukünftige Änderungen

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

  3. Objektrelationales 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 sowohl diese ORM-Frameworks als auch 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 Web-Ebene einer Anwendung unterstützt.

Ein gutes Buch über den Frühling: Pro Spring

    
JLBarros 07.07.2010, 10:30
quelle
2

Frühling, wie in diese Überprüfung 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 die Abhängigkeiten einer Klasse verweisen können, ohne sie zu instanziieren. I.e. Sie sagen was Ihre Klasse braucht, nicht wie sie es erhält. 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.

    
Bozho 07.07.2010 06:05
quelle
2

Zusätzlich zur Abhängigkeitsinjektion bietet Spring Funktionen wie deklaratives Transaktionsmanagement, einfache Integration mit ORM, Unterstützung für aspektorientierte Programmierung und viele andere nette Dinge.

Zur Dokumentation siehe Spring reference: Ссылка

    
Aleksey Otrubennikov 07.07.2010 09:22
quelle
2

@Dolph, denken Sie im einfachsten Sinne an Spring als Ihren Anwendungsrahmen auf höchstem Niveau. 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 davon (abgesehen von all den Goodies, die in anderen Beiträgen genannt werden) ist, dass Sie leicht jede dieser Implementierungen in der Zukunft einfach austauschen können. So können Sie Hibernate eines Tages im Wesentlichen ausreißen und durch TopLink ersetzen, und es wird nie einen Welleneffekt für andere Komponenten verursachen.

Ein weiterer Vorteil von Spring ist, dass Ihr Code weniger durcheinander ist und lose Abhängigkeiten zu anderen Klassen aufweist, da Sie weniger Zeit damit verbringen, neue Objekte selbst zu erstellen. Spring übernimmt 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 Spring Buch ist gut, von @JLBarros erwähnt. Ich mag Spring in Action sehr. Es ist sehr leicht zu lesen, als ich mit Spring anfing. Dies ist wahrscheinlich ein Nachschlagewerk, das ich von Haut zu Haut gelesen habe.

    
limc 07.07.2010 14:29
quelle