Nachdem Spring vor allem für sich in's Feld führt, auf POJOs zu fokussieren und die Entwicklung deutlich zu vereinfachen, sollte man ebenfalls einen Blick auf alternative Ansätze in diesem Feld werfen. Eine Sache, die mit Java SE 5 uns gegeben wurde, sind Annotationen. Nach meiner Meinung wird dieses im Vergleich zu den anderen Features wie Generics, typesafe Enums usw. die Programmierung mit Java am deutlichsten beieinflussen. Wenn man nun Spring in die Gleichung einbezieht, so ergeben sich teilweise Synergien. Annotationen eignen sich beispielsweise hervorragend, um Methoden für Aspekte zu markieren. Hier kann man mit Spring AOP dann auf die jeweiligen Annotationen reagieren. So kann man dies Verfahren zum Beispiel nutzen, um Transaktionen zu steuern. Auch sonst befruchten sich die Ansätze: Durch die Annotationen in EJB 3 ist es leichter, ein Spring POJO zu einem EJB zu machen. Man muss nur noch die Annotationen hinzufügen - fertig.
Auf der anderen Seite wird durch dieses Modell die Entwicklung auch ohne Spring vereinfacht. Die Integration von EJB, RMI, Web Services usw. in Spring ist keine so große Erleichterung mehr.
Was bedeutet dies nun? Die wesentliche Basis von Spring nämlich Dependency Injection und AOP ist und bleibt der große Vorteil. In den anderen Gebieten - und dies gilt zum Beispiel wohl auf für Hibernate 3 - lernen die anderen dazu. Dennoch ist Spring in der Vollständigkeit der Lösung immer noch ein einzigartig. So oder so ist es für Entwickler auf jeden Fall positiv, wenn man aus mehreren guten Ansätzen den besten auswählen kann.