Suche

Spring Scala M1: Scala für Spring-Entwickler – oder Spring für Scala-Entwickler?

Hartmut Schlosser

Um Spring mit der Programmiersprache Scala zusammenzubringen, hat SpringSource das Projekt „Spring Scala“ ins Leben gerufen. Im Oktober 2012 angekündigt und auf der Devoxx der Community vorgestellt, liefert nun Projekt-Entwickler Arjen Poutsma auf dem SpringSource-Blog Details über die Nutzung des Projektes.

Spring Scala ist für Spring-Entwickler gedacht, die Scala ausprobieren möchten, aber nicht auf die Vorteile des Spring-Frameworks verzichten möchten, heißt es auf dem Blog. Zwar kann man Scala auch ohne ein spezielles Framework mit Spring nutzen. Doch wird es an einigen Ecken und Enden hakeln, da man ein Java Framework mit seinen typischen Java-Konstrukten einem neuen Sprachkonzept anpassen muss.

Spring Scala soll Spring zu einer „Technologie erster Wahl“ für Scala machen. Etwa lassen sich Scala Beans in Spring-XML-Anwendungen einsetzen, durch Constructor Injection à la:

Scala:

class Person(val firstName: String, val lastName: String)

Spring Scala:

<bean id=“person“ class=“Person“ c:firstName=“John“ c:lastName=“Doe“/>

Spring Scala bietet aber auch einen alternativen Weg, bei dem Scala-Klassen statt XML-Dateien für die Konfigurierung von Spring Beans eingesetzt werden.

Ebenfalls unterstützt wird die Nutzung von Spring Templates in Scala. Hierfür werden Wrapper zur Verfügung gestellt, die die Java Templates an die Scala-Gegebenheiten anpassen. Statt Callback Interfaces können dann Scala-Funktionen genutzt werden. Wo die Java-Templates null zurückgeben, kann man auf das Scala-Konstrukt Option zurückgreifen. Außerdem kommen Klassen-Manifeste statt Klassenparameter zum Einsatz.

Soviel an dieser Stelle zur Funktionsweise von Spring Scala – eine ausführliche Beschreibung liefert Arjen Poutsma in dem besagten Blogeintrag.

Arjen gibt noch zu bedenken, dass es sich bei Spring Scala um „Work in Progress“ handelt. Mit baldigen Funktionserweiterungen ist also zu rechnen. Derzeit gibt es die Milestone-1-Version zum freien Download im SpringSource-Repository oder auf GitHub.

Am Schluss dann doch nochmals die Frage, für wen das Projekt interessant ist: für Scala-Entwickler, die Spring nutzen möchten? Oder für Spring-Entwickler, die Scala mögen? Als man bei SpringSource gerade über Sinn und Zweck eines Spring-Scala-Frameworks nachdachte, hatten wir im Januar 2011 ein Quickvote dazu – mit folgendem Ergebnis:

Was halten Sie von einer Scala-Version von Spring?

  • Wozu – Spring kann man doch schon mit Scala verwenden. (33%)
  • Eine eigene Version von Spring für Scala wäre sinnvoll. (42%)
  • Die jetzige Framework-Landschaft bei Scala ist ausreichend – wozu Spring für Scala? (24%)
  • Teilnehmer: 193

Ausgangspunkt für dieses Quickvote war übrigens ein Satz von Kommentator Trepper, der da lautete:

Ich wäre wirklich froh, wenn Spring sich mit Scala neu erfinden würde! Trepper

Eberhard Wolff hatte daraufhin geantwortet:

Eine interessante Frage ist, was „Spring für Scala“ überhaupt sein könnte – sicher eine spannende Diskussion. Eberhard Wolff

Mit dem vorliegenden Spring-Scala-Projekt sieht man jetzt ein Stückchen weiter. Schwerlich wird man allerdings bejahen können, dass sich Spring mit Scala neu erfunden hätte. Aber: Sollte es das überhaupt?

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.