J'ai une application de démarrage Spring fonctionnelle qui se connecte à une base de données Postgres. Le projet est configuré avec un fichier application.properties, mais j'aimerais passer à un fichier application.yml. Cependant, lorsque j'effectue le changement, mon application présente des erreurs lors de la tentative de connexion à la base de données.
Fichier applications.properties d'origine:
spring.jpa.database=POSTGRESQL
spring.datasource.platform=postgres
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=foo
spring.datasource.password=bar
Et voici ce que j'ai jusqu'à présent dans le fichier application.yml:
spring.jpa:
database: POSTGRESQL
hibernate.ddl-auto: create-drop
show-sql: true
spring.datasource:
platform: postgres
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/mydb
username: foo
password: bar
Me manque-t-il quelque chose dans la traduction entre les types de fichiers?
Vous devez traiter chaque caractère .
dans les noms de propriétés comme des niveaux dans le fichier yaml
:
spring:
jpa:
database: POSTGRESQL
show-sql: true
hibernate:
ddl-auto: create-drop
datasource:
platform: postgres
url: jdbc:postgresql://localhost:5432/mydb
username: foo
password: bar
driverClassName: org.postgresql.Driver
EDIT: des modifications ont été suggérées, merci pour cela. La propriété driverClassName
devrait en réalité être sous spring.datasource
. Cependant, le but de cette réponse était de montrer comment un fichier properties
est converti au format yaml
. J'ai donc changé la propriété driverClassName
pour qu'elle soit sur le bon chemin, cela ne fait pas partie de la transformation de properties
en yaml
.
S'il vous plaît upvote l'autre réponse (réponse de Z0lt @ n)
Mais coller ici pour les futurs lecteurs ... une version serveur SQL.
spring:
jpa:
show-sql: true
hibernate:
ddl-auto: update
properties:
hibernate.jdbc.batch_size: 20
hibernate.cache.use_query_cache: false
hibernate.cache.use_second_level_cache: false
hibernate.cache.use_structured_entries: false
hibernate.cache.use_minimal_puts: false
datasource:
#SPRING_DATASOURCE_URL environment variable will be something like -> jdbc:sqlserver://MySqlServer\\MyInstance:1433;DatabaseName=MyDbName;
url: ${SPRING_DATASOURCE_URL}
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}
driverClassName: com.Microsoft.sqlserver.jdbc.SQLServerDriver
et entrée maven
<dependency>
<groupId>com.Microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.0.0.jre8</version>
</dependency>