Spring und Scala im Tandem

A Match made in Heaven

Eberhard Wolff


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 organisiertMit aspektorientierter Programmierung (AOP) können Querschnittsbelange wie Sicherheit oder Transaktionen zentralisiert implementiert werdenDie 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 mithilfe von Annotationen. Als Beispiel für eine durch Dependency Injection zu konfigurierende Klasse dient das in Scala geschriebene CustomerDao aus Listing 1. Es kapselt die Persistenz für Customer und hängt von einer DataSource ab, die den Zugr...

Spring und Scala im Tandem

A Match made in Heaven

Eberhard Wolff


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 organisiertMit aspektorientierter Programmierung (AOP) können Querschnittsbelange wie Sicherheit oder Transaktionen zentralisiert implementiert werdenDie 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 mithilfe von Annotationen. Als Beispiel für eine durch Dependency Injection zu konfigurierende Klasse dient das in Scala geschriebene CustomerDao aus Listing 1. Es kapselt die Persistenz für Customer und hängt von einer DataSource ab, die den Zugr...

Neugierig geworden?


    
Loading...

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