Eine neue Applikation kann man doch gleich in der Cloud betreiben. Dabei sollte Automatisierung eine wichtige Rolle spielen und idealerweise bis zum Deployment angewendet werden; ganz im Sinne von CD. Im diesem Artikel wird beschrieben wie eine Spring Boot Application in eine OpenShift Instanz betrieben wird und dabei die Konfiguration so vorgenommen wird, dass jede Änderung des Source Codes automatisch zu einem neuen Build führt.
[Read More]JPA: Dynamic Datasource Routing
Man stelle sich vor, in einer (Web-)Anwendung müssen verschiedene Datasources verwendet werden. Ob bei den unterschiedlichen Datasourcen es sich immer um die andere/gleiche Datenbank handelt, sei mal dahingestellt. Die Datasourcen unterscheiden sich mind. in einer Eigenschaft, z.B. User.
Im Spring-Kontext gilt folgendes: In JPA braucht man pro EntityManagerFactory eine Datasource. Der EMF ist einen TransactionManager zugeordnet.
Man könnte alle Datasource, EMF, TX-Manager und PUs in Spring konfigurieren. Man hat jedoch ein Problem, wenn man n verschiedene Datasourcen hat, die zur Laufzeit ausgewählt werden müssen.
[Read More]Spring AOP & Ehcache
Caching ist ja bekanntlich eine Querschnitts-Anforderung (cross cutting concern), was man eigentlich nicht direkt in die Business-Logik integrieren möchte/sollte. Hier bietet es sich an, die Cache-Funktionalität mittels AOP (Aspektorientierte Programmierung) zu realisieren. Dieser Beitrag erklärt das exemplarisch realisieren der Cache-Funktionalität mittels Spring AOP und Ehcache. Einführung Vorweg. Es gibt natürlich bei den springmodules ein Cache-Modul. Dieses wird, wenn überhaupt, nur sehr langsam weiterentwickelt. Das neue Spring Extensions Projekt beinhaltet leider kein Cache-Modul. Hinzu kommen noch fehlende Funktionalitäten wie z.B. das Löschen von nur einem Objekt aus dem Cache. Falls man jedoch doch Springmodules Cache nutzen will, kann man sich mein altes Beispiel anschauen.
[Read More]Cache method results with Ehcache and Spring
Caching ist eins der Aspekte welches man nicht unbedingt direkt in der Businesslogik verankern möchte. Hierzu empfehlt es sich eine AOP-Lösung. Mit AOP kann die Funktionalität einer Cache-Realisierung genutzt werden. Eins der populärsten Cache-Provider ist Ehcache.
In dem Umfeld von Spring kann man Ehcache folgendermaßen integrieren:
Man nutzt das aus dem nicht mehr gewarteten spring-modules-Projekt das cache-Modul. Ja, spring-modules wird durch Spring-Extensions abgelöst, jedoch werden nicht alle Projekte übernommen. D.h. manche Unterprojekte (wohl auch Cache) werden nicht nach Spring-Extensions übernommen. Wo da der Sinn liegt, ist wohl nur den Betreibern klar.
[Read More]