H2 Datenbank mit einer Spring Boot Applikation

Spring Boot und H2 Datenbanken sind eine perfekte Kombination um schnell und unkompliziert eine Anwendung auszuführen. Das liegt auch daran, dass die Integration von H2 in Spring Boot einfach ist und nur nur minimale Konfiguration erfordert. Als dateibasierte Datenbank bietet H2 eine flexible und leichte Möglichkeit, Daten zu speichern, was sie besonders nützlich für Testzwecke macht. In diesem kurzen Artikel zeigen wir, wie man über eine Spring Boot Anwendung auf die H2-Console zugreifen kann.

Im ersten Schritt müssen wir den Zugriff auf die H2-Console in Spring einrichten. Dazu müssen die Properties spring.h2.console.enabled und spring.h2.console.path gesetzt werden (in application.properties bzw. application.yaml)

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.url=jdbc:h2:file:./db/test-db
spring.datasource.driver-class-name=org.h2.Driver

Der Wert unter spring.h2.console.path gibt die URI unter der die Console aufgerufen werden kann. Hier muss man nur beachten, dass "/h2-console" von Spring Security ignoriert werden muss. In dieser Konfiguration wird im Ordner "db" relativ zu dem Applikationsordner die H2-Datenbank angelegt.

Zusätzlich muss die Option:

httpSecurity.headers().frameOptions().disable();

gesetzt werden. Das liegt daran, weil die H2 Console Applikation frame Elemente verwendet.

Wir können die Console jetzt unter: http://localhost:8090/api/h2-console aufrufen, wobei hier der Port 8090 (server.port) und Context-Path api (server.servlet.context-path) entsprechend konfiguriert wurden.

Sinnvollerweise verwendet man diese Einstellungen nicht für die Produktions-Konfiguration in der Applikation.