Ich bin seit Juni neu im Business und informiere mich auch grad über die zahlreichen tollen Frameworks. Dabei habe ich die Entwicklung mit Struts, JSF und Spring verglichen. Alle beruhen auf dem Prinzip, ein zentrales Servlet zu registrieren, das sämtliche Anfragen abfängt und aufgrund der Request-URL und definierten Navigationsregeln an weitere Controller, Actions etc. weiterleitet.
Der Nachteil bei Struts ist v.a. der, dass jede solche Klasse, die eine Anfrage bearbeitet oder Daten eines Formulars enthält, von einer Struts-Klasse erben muss. Damit sind diese Komponenten der Geschäftslogik stets an Struts gebunden.
Bei JSF ist das anders, da gibt es nur noch POJOs. Außerdem entwickelt dort der Programmierer wohl mit bekannten komponentenbasierten Oberflächen und Events.
Und Spring ist ein umfangreicheres Framework über jede Schicht der Anwendung hinaus. Spring hat außerdem Inversion Of Control.
Meine Unklarheiten
- JSF soll angeblich abstrakte Oberflächen definieren, aus denen dann HTML, WML o.Ä. gerendert werden kann. Sämtliche Beispiele waren aber bislang ein Mischmasch aus HTML und JSF-Komponenten. Wo bleibt da der Metacharakter?
Was ist in Spring bzgl. Persistenz anders als beim herkömmlichen Weg? Es gibt irgendwelche JDBC-Helperklassen, aber kann man Spring auch die Persistenz ohne jeglichen JavaCode übernehmen lassen? (CMP)
Ist es wahr, dass die Werkzeugunterstützung von Spring schwer zu realisieren ist, weil die XML-Konfigurationsdateien ungenügende Aussagen geben und stets der Java-Quellcode compiliert werden muss?
Nach dem, was ich bisher gelesen habe, soll Spring+JSF wohl die ZUKUNFT sein.(???)