Spring Boot 数据库应用程序.yml,用于从www.example.com Boot applications.properties

bzzcjhmw  于 2023-02-12  发布在  Spring
关注(0)|答案(4)|浏览(129)

我有一个连接到Postgres数据库的正在运行的Sping Boot 应用程序。我用www.example.com文件设置了这个项目application.properties,但是我想切换到一个application.yml文件。但是当我进行切换时,我的应用程序在尝试连接到数据库时出错。
原始applications.properties文件:

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

下面是到目前为止我在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

在文件类型之间的转换中我是否遗漏了什么?

gajydyqb

gajydyqb1#

您需要将属性名称中的每个.字符视为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
    • 编辑**:编辑建议,谢谢。driverClassName属性实际上应该在spring.datasource下。但是,这个答案的目的是显示如何将properties文件转换为yaml。因此,我将driverClassName属性更改为正确的路径,这不是从propertiesyaml的转换的一部分。
z5btuh9x

z5btuh9x2#

请投票支持另一个答案(Z0lt@n的答案)
但是为了将来的读者粘贴在这里...一个sql server版本。

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

和maven入口

<dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>7.0.0.jre8</version>
    </dependency>

附录
这似乎是driverClassName的“标准”名称。

SPRING_DATASOURCE_DRIVER-CLASS-NAME

当然,在我的例子中,你会使用的值:

com.microsoft.sqlserver.jdbc.SQLServerDriver

现在,一些Spring,Spring Boot,环境变量巫毒警报。
有时候,在为某些命令行项目指定环境变量时,我必须更改连字符,使其成为下划线。(也称为“SPRING_DATASOURCE_DRIVER-CLASS-NAME”与“SPRING_DATASOURCE_DRIVER_CLASS_NAME”
下面的-e一般表示“通过命令行传递环境变量值”

MyCommandLineProgram.exe -e SPRING_DATASOURCE_URL="jdbc:sqlserver://myServerName:1433;DatabaseName=MyDB;" -e SPRING_DATASOURCE_USERNAME="myUserName" -e SPRING_DATASOURCE_PASSWORD="myPassword" -e SPRING_DATASOURCE_DRIVER_CLASS_NAME="com.microsoft.sqlserver.jdbc.SQLServerDriver"

给你来点巫术。
那些对日志(logback.xml)问题感兴趣的人,也许也想在这里找到我的答案:
Spring Boot Logback DB Appender Properties

2mbi3lxu

2mbi3lxu3#

应用程序.yml文件用于***postgresql***

Spring Data 源(数据源自动配置和数据源属性)

spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    username: postgres
    password: root
    url: jdbc:postgresql://localhost/postgres
    platform: postgres
    initialization-mode: always
    continue-on-error: true
  jpa:
    show-sql: true
    generate-ddl: true
    hibernate:
      ddl-auto: create
    database: postgresql
kqhtkvqz

kqhtkvqz4#

server:
  port: 1111  
spring:
    application:
      name: client-one 
    datasource:
     password: postgres
     url: jdbc:postgresql://localhost:5432/postgres?currentSchema=education
     username: postgres
    jpa:
     hibernate:
      ddl-auto: update
     properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgreSQLDialect
     show-sql: true

相关问题