Pour diverses raisons, j'ai décidé de créer une application Web Spring Boot. À ce moment-là, j'ai décidé d'utiliser le h2db intégré, j'ai donc résumé les problèmes et les enquêtes à ce moment-là. À propos, la version de la botte à ressort est "1.5.17" de 1 série.
Ajoutez spring-boot-starter-jdbc
et h2
à la dépendance de pom.xml
.
Lors de la création d'un projet avec Spring Initializr, il en sera de même si vous ajoutez les deux suivants.
Dépendances à ajouter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
Ajoutez les paramètres suivants à application.properties ou application.yml. Les paramètres sont les trois suivants.
src/main/resources/application.propertie
# datasource
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:./h2db/sampledb
spring.datasource.username=username
spring.datasource.password=password
# connection pool use tomcat
spring.datasource.tomcat.maxActive=10
spring.datasource.tomcat.maxIdle=10
spring.datasource.tomcat.minIdle=10
spring.datasource.tomcat.initialSize=10
spring.datasource.tomcat.defaultAutoCommit=false
# h2 for debug tool
# spring.h2.console.enabled=true
# spring.h2.console.path=/h2-console
# spring.h2.console.settings.web-allow-others=true
Le contenu de chaque paramètre est décrit dans Explication of application.properties of official guidelines. Je vais. Les points sont expliqués ci-dessous.
spring.datasource.tomcat.*= # Tomcat datasource specific settings
Puisqu'il y en a, j'ai défini driverClass, url, username, password
ainsi que la définition de la source de données de Tomcat, et supprimé spring.datasource.url
etc.
Cela semble inutile. Il semble correct de le définir uniquement comme une piscine.
DB embarquée, c'est-à-dire le même processus JVM, mais vous avez besoin d'un pool? Je suis sûr que certaines personnes le pensent, mais l'auteur est également en sueur. Je l'ai défini car il est nécessaire pour les applications Web générales. L'effet de ne pas mesurer la performance est inconnu.
Erreur
# datasource
# nothing see connection pool
# connection pool use tomcat
spring.datasource.tomcat.driver-class-name=org.h2.Driver
spring.datasource.tomcat.url=jdbc:h2:./h2db/sampledb
spring.datasource.tomcat.username=username
spring.datasource.tomcat.password=password
spring.datasource.tomcat.maxActive=10
spring.datasource.tomcat.maxIdle=10
spring.datasource.tomcat.minIdle=10
spring.datasource.tomcat.initialSize=10
spring.datasource.tomcat.defaultAutoCommit=false
Vous pouvez également utiliser la fonction de gestion Web de h2 avec le DB intégré. La base de données intégrée s'exécute dans le même processus JVM que l'application, et comme il s'agit d'une base de données dédiée et ne peut pas être connectée au réseau, il était difficile à déboguer. Vous pouvez utiliser la fonction de gestion Web pour consulter ou modifier les données du DB actuel.
# h2 for debug tool
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.web-allow-others=true
Puisqu'il s'agit d'une fonction de débogage, il est préférable de l'activer dans les propriétés système au lieu de la définir dans application.propeties. Dans ce cas, même si vous oubliez de modifier le fichier de paramètres, vous pouvez être assuré que la fonction de débogage restera désactivée.
java -jar your-app.jar -Dspring.h2.console.enabled=true -Dspring.h2.console.path=/h2-console -Dspring.h2.console.settings.web-allow-others=true
À propos, spring.h2.console.settings.web-allow-others
indique s'il faut autoriser l'accès depuis un emplacement distant (un autre PC). La valeur par défaut «false» n'est accessible que localement, c'est-à-dire à partir du PC exécutant l'application.
h2db est une base de données en mémoire, mais les données peuvent être conservées dans une base de données intégrée. Cela signifie que ce serait un problème s'il était initialisé à chaque démarrage.
CREATE TABLE IF NOT EXISTS
jdbc: h2:. / h2db / sampledb
signifie stocker le fichier DB dans le chemin (. / h2db / sampledb
) vu par rapport au répertoire courant au moment de l'exécution.. /
est important pour la spécification de chemin relatifSi vous utilisez springframework tel quel, divers paramètres (définition de Bean, AOP, etc.) requis pour l'accès à la base de données sont nécessaires, mais dans le cas d'un démarrage à ressort, ils sont définis automatiquement.
JdbcTemplate
, NamedParameterJdbcTemplate
est défini automatiquement@ Autowired
etc.@ Transactional
est activéCette fois, j'ai résumé les problèmes et les recherches sur la façon d'utiliser le h2db intégré dans l'application Web de démarrage pring. Quand je l'ai essayé, j'ai été surpris car il y avait moins de paramètres que ce à quoi je m'attendais. En ce sens, la botte à ressort est facile.
Recommended Posts