Spring und Scala im Tandem

A Match made in Heaven


Die Programmiersprache Scala erfreut sich immer größerer Beliebtheit unter Java-Entwicklern. Und in der Java-Welt gibt es Frameworks wie Spring. Da drängt sich die Frage auf: Was passiert, wenn Scala und Spring kombiniert werden?

Scala hat einige interessante Eigenschaften, die es gerade für Java-Entwickler attraktiv macht. Genauso wie Java ist die Sprache statisch typisiert und stellt Eleganz in den Mittelpunkt. Durch funktionale Programmierung kann Scala vor allem Vorteile in der Entwicklung von nebenläufigen Systemen bieten. Aber es gibt nur wenige Scala-Bibliotheken für die Entwicklung von Enterprise-Anwendungen. Daher lohnt ein Blick auf das Spring Framework: Es ist ein sehr wichtiges Werkzeug für Java-Enterprise-Systeme, vor allem aber sehr flexibel. Die Chancen für eine gewinnbringende Integration mit Scala stehen also sehr gut.

Springs Bausteine

Das Spring Framework besteht aus verschiedenen ­Teilen:

  • Durch Dependency Injection wird die Zusammen­arbeit der Objekte in der Anwendung organisiert

  • Mit aspektorientierter Programmierung (AOP) können Querschnittsbelange wie Sicherheit oder Transaktionen zentralisiert implementiert werden

  • Die Serviceabstraktion bietet ein einheitliches und vereinfachtes API für Java APIs wie JMS, JDBC oder Transaktionen an

Die grundlegende Frage ist, wie diese einzelnen Elemente von Spring mit Scala genutzt werden können.

Dependency Injection

Zunächst kurz zur Definition von Dependency Injection (DI): Bei diesem Ansatz werden den Objekten die abhängigen Objekte injiziert, also von außen zugewiesen. So können Abhängigkeiten einfacher gehandhabt werden. Außerdem ist es möglich, die abhängigen Objekte für Tests zu ersetzen, um so bestimmte Szenarien zu simulieren. Anwendungen lassen sich außerdem einfacher konfigurieren, weil recht unkompliziert andere Objekte oder Werte injiziert werden können, die in der Konfiguration abgelegt und daher einfach überschreibbar sind.

DI ist ein Pattern und kann im Code implementiert werden – auch mit Scala. Wenn die Konfiguration für DI aber in einer getrennten Datei außerhalb des Programmcodes geschieht, kann sie ohne ein erneutes Kompilieren oder Deployen der Anwendung geändert werden. Außerdem kann dann DI genutzt werden, um Konfigurationsparameter in Objekte zu injizieren. So wird ein eigener Mechanismus für die Konfiguration der Anwendung überflüssig. Spring bietet eine Vielzahl unterschiedlicher Ansätze für DI an. Dazu zählen DI-Konfigurationen in XML, im Code (JavaConfig) und mithil...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang