Neues von Spring Data

Annotation Config

Spring Data wurde um die XML-freie Konfigurationsmöglichkeit im Spring-3.1-Stil erweitert. Damit ist es möglich, @Enable(Jpa|Mongo|Neo4j|Gemfire)Repositories statt des <repository>-Eintrags in der context.xml zu verwenden.

@EnableJpaRepositories(base-package = "de.jaxenter.repositories")
class Application {
}

Wird die Repositories-Annotation ohne Angabe eines Basepackage verwendet, so wird das Package der annotierten Klasse gescannt.

MongoDB

Die Unterstützung von GridFS in Spring Data MongoDB wurde verbessert. Mit dem GridFsTemplate ist es nun einfach möglich, Dateien zu schreiben und zu suchen.

 @Test
public void storeAndFindFile() {
Resource file = . // lookup File or Resource
template.store(file.getInputStream(), "filename.txt");
List result = template.find(query(whereFilename().is("filename.txt")))
}

Möchte man Spring Data MongoDB in einem JavaEE-6-Umfeld verwenden, können CDI Managed Beans jetzt auch mit @Inject injiziert werden. Außerdem kann eine JSR 303 Bean Validation beim Speichern automatisch angestoßen werden. Um diese zu aktivieren, muss eine Bean der Klasse ValidatingMongoEventListener oder ein leeres <mongo:mapping-converter /> Namespace-Element hinzugefügt werden. Eine Unterstützung für optimistisches Locking steht auch zur Verfügung, dafür muss eine Entität lediglich um ein mit @Version annotiertes Attribut erweitert werden. Für die Verwendung von Joda-Date in Spring Data MongoDB müssen mit dem Arora Release keine eigenen Converter mehr hinzugefügt werden.

Neo4j

In Spring Data Neo4j gibt es nun Unterstützung für Unique Entities. Dafür müssen diese mit @Indexed(unique=true) annotiert werden. Beziehungen zwischen den Knoten lassen sich nun mit @RelationshipEntity, @RelationshipType und @RelatedTo[Via] genau beschreiben.

Das Spring Data Commons Artifact wurde von spring-data-commons-core zu spring-data-commons umbenannt. Hatte man dieses früher in Maven selbst verwaltet, muss die Artifactid neben der Version ebenfalls angepasst werden.

Fazit

Mit Spring Data steht ein tolles Projekt zur Verfügung, um die Implementierung der Persistenz-Schicht zu vereinfachen und zu homogenisieren. Das nächste Release ist für Mai geplant. Der Hauptfokus soll darauf gerichtet sein, die verschiedenen Features in den Modulen anzugleichen. Spring Data Rest, welches bisher nur Unterstützung für JPA-Repositories bot, soll dann für alle Module zur Verfügung stehen, CDI Support soll in Neo4j und Gemfire Einzug erhalten. An einer Unterstützung für das MongoDB Aggregation Framework wird ebenfalls gearbeitet.

Martin Baumgartner arbeitet als Softwareentwickler für Ebcont Enterprise Technologies und interessiert sich für Java und Open Source.
Kommentare

Schreibe einen Kommentar

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