© Excellent backgrounds/Shutterstock.com
Java Magazin
Integration mit Spring, Hibernate, JPA und anderen

Tapestry als Integrationsplattform


In einer Welt von hunderten Open-Source-Bibliotheken ist es eine der wichtigsten Anforderungen an ein Framework geworden, mit anderen integrierbar zu sein. Ein Vorreiter auf diesem Gebiet ist sicherlich das Spring Framework, das eine Integration mit gefühlt jeder Bibliothek und jedem anderen Framework ermöglicht. Tapestry bietet aufgrund des integrierten IoC-Containers ähnliche Flexibilität und kann somit auch sehr einfach andere Bibliotheken integrieren.

In diesem letzten Teil der Tapestry-Serie wollen wir einen Blick auf die Integration von Tapestry mit anderen Frameworks und Bibliotheken werfen. Etwas genauer wird die Spring-, Hibernate- und JPA-Integration vorgestellt. Zum Schluss wollen wir noch einen Blick auf Best Practices werfen, die im Laufe von Projekten gesammelt wurden.

Artikelserie

Teil 1: Überblick und Konzepte, Events, Internationalisierung

Teil 2: CRUD mit BeanEditor und Grid

Teil 3: Komponenten, Ajax und JavaScript

Teil 4: Integration mit anderen Frameworks, Best Practices

Spring und andere IoCs

Die Spring-Integration in Tapestry ist sehr gut gelungen. Kein Wunder, kommt doch bei vielen Projekten Spring im Backend zum Einsatz. Will man Spring gemeinsam mit Tapestry benutzen, so muss man zusätzlich das Modul tapestry-spring in der passenden Version einbinden und den Servlet-Filter im web.xml anpassen auf: org.apache.tapestry5.spring.TapestrySpringFilter. Der Rest funktioniert dann wie in der Spring-Dokumentation beschrieben: Man kann z. B. die Spring-Konfigurationsdatei per Servlet-Kontextparameter contextConfigLocation angeben. Dann wird beim Start der Webapplikation zusätzlich zum Tapestry-IoC-Container auch der Spring ApplicationContext initialisiert. In Spring definierte Beans können nun einfach per @Inject in Tapestry-Komponenten und -Seiten eingefügt werden. Dabei wird die Bean per Typ aus dem Spring-Container geholt. Das funktioniert natürlich nur für Beans, die es nur einmal im Container gibt. Für andere Beans, wie z. B. Beans mit Session-Scope kann man sich den ApplicationContext injizieren lassen und dann daraus die entsprechende Bean holen. Seit der Version 5.2 kann man mit der Spring-Integration auch umgekehrt Tapestry Services im Spring-Container verwenden und einfach in Beans injizieren. Dafür muss man aber die Services zusätzlich mit der Annotation @Inject versehen:

public class MyBean { @Inject @Autowired private MyService myService; ... }

Für andere IoC-Container gibt es keine offizielle Unterstützung von Tapestry, jedo...

Java Magazin
Integration mit Spring, Hibernate, JPA und anderen

Tapestry als Integrationsplattform

In einer Welt von hunderten Open-Source-Bibliotheken ist es eine der wichtigsten Anforderungen an ein Framework geworden, mit anderen integrierbar zu sein. Ein Vorreiter auf diesem Gebiet ist sicherlich das Spring Framework, das eine Integration mit gefühlt jeder Bibliothek und jedem anderen Framework ermöglicht. Tapestry bietet aufgrund des integrierten IoC-Containers ähnliche Flexibilität und kann somit auch sehr einfach andere Bibliotheken integrieren.

Christian Köberl


In einer Welt von hunderten Open-Source-Bibliotheken ist es eine der wichtigsten Anforderungen an ein Framework geworden, mit anderen integrierbar zu sein. Ein Vorreiter auf diesem Gebiet ist sicherlich das Spring Framework, das eine Integration mit gefühlt jeder Bibliothek und jedem anderen Framework ermöglicht. Tapestry bietet aufgrund des integrierten IoC-Containers ähnliche Flexibilität und kann somit auch sehr einfach andere Bibliotheken integrieren.

In diesem letzten Teil der Tapestry-Serie wollen wir einen Blick auf die Integration von Tapestry mit anderen Frameworks und Bibliotheken werfen. Etwas genauer wird die Spring-, Hibernate- und JPA-Integration vorgestellt. Zum Schluss wollen wir noch einen Blick auf Best Practices werfen, die im Laufe von Projekten gesammelt wurden.

Artikelserie

Teil 1: Überblick und Konzepte, Events, Internationalisierung

Teil 2: CRUD mit BeanEditor und Grid

Teil 3: Komponenten, Ajax und JavaScript

Teil 4: Integration mit anderen Frameworks, Best Practices

Spring und andere IoCs

Die Spring-Integration in Tapestry ist sehr gut gelungen. Kein Wunder, kommt doch bei vielen Projekten Spring im Backend zum Einsatz. Will man Spring gemeinsam mit Tapestry benutzen, so muss man zusätzlich das Modul tapestry-spring in der passenden Version einbinden und den Servlet-Filter im web.xml anpassen auf: org.apache.tapestry5.spring.TapestrySpringFilter. Der Rest funktioniert dann wie in der Spring-Dokumentation beschrieben: Man kann z. B. die Spring-Konfigurationsdatei per Servlet-Kontextparameter contextConfigLocation angeben. Dann wird beim Start der Webapplikation zusätzlich zum Tapestry-IoC-Container auch der Spring ApplicationContext initialisiert. In Spring definierte Beans können nun einfach per @Inject in Tapestry-Komponenten und -Seiten eingefügt werden. Dabei wird die Bean per Typ aus dem Spring-Container geholt. Das funktioniert natürlich nur für Beans, die es nur einmal im Container gibt. Für andere Beans, wie z. B. Beans mit Session-Scope kann man sich den ApplicationContext injizieren lassen und dann daraus die entsprechende Bean holen. Seit der Version 5.2 kann man mit der Spring-Integration auch umgekehrt Tapestry Services im Spring-Container verwenden und einfach in Beans injizieren. Dafür muss man aber die Services zusätzlich mit der Annotation @Inject versehen:

public class MyBean { @Inject @Autowired private MyService myService; ... }

Für andere IoC-Container gibt es keine offizielle Unterstützung von Tapestry, jedo...

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