Spring引导和 Liberty 服务器 - Spring JPA - 在服务器设置文件中使用数据库凭据而不是 Spring application.properties

Springboot and Liberty Server - Spring JPA - Having database credentials in server settings file instead of Spring application.properties

我正在使用 Springboot 和 Spring JPA。我的应用程序正在连接到数据库,我目前正在使用

spring.datasource.url=jdbc:oracle:thin:@.....
spring.datasource.username=blahblah
spring.datasource.password=xyz

,在 Spring application.properties 文件中指定。

一切正常;但是,我们不想向开发人员提供此信息,而是让我们的服务器团队在生产服务器中设置这些信息 运行 WAS Liberty(或 Open Liberty)。

如何在 Liberty server.xml 中使用这些凭据并让 Spring JPA 仍然执行它需要执行的操作?

Spring 引导文档 here 表示您可以使用 spring.datasource.jndi-name 属性 代替指向已配置数据源的 JNDI 名称。

以下是如何在 Liberty 服务器配置(server.xml 文件)中配置 Oracle 数据源,

<server>
  <featureManager>
    <feature>jdbc-4.2</feature>
    <feature>jndi-1.0</feature>
    <!-- ... other features here -->
  </featureManager>

  <dataSource jndiName="jdbc/oracle">
    <jdbcDriver libraryRef="OracleJDBCLib"/>
    <properties.oracle URL="jdbc:oracle:thin:@//..." user="blahblah" password="xyz"/>
  </dataSource>

  <library id="OracleJDBCLib">
    <fileset dir="/path/to/oracle/ojdbc8.jar"/>
  </library>

</server>

然后你应该可以设置,

spring.datasource.jndi-name=jdbc/oracle

这是关于在 Liberty 中创建数据源的文档link