首页 > 解决方案 > 通过 SpringBoot Profiles 配置 API Host

问题描述

我正在为我的项目使用 SpringBoot、Java 和 Gradle。我的 API 连接到通过 spring 属性配置的数据库,但也依赖于外部 API Rest 进行某些数据检索。

我的问题是有没有办法使用弹簧属性配置外部 API 主机和密码?我应该使用哪些属性?有没有办法创建自定义属性?

## application.yml
---
spring:
  profiles: dev
  datasource:
    platform: postgres
    url: 
jdbc:postgresql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}
    username: ${DATABASE_USER}
    password: ${DATABASE_PASSWORD}
    driverClassName: org.postgresql.Driver
    initialize: true

  liquibase:
   change-log: classpath:db/changelog-master.xml

标签: javaspringconfiguration

解决方案


是的。最简单的方法就是定义您喜欢的任何属性名称application.yml

api:
 url: http://api.com/blablba/
 password: fooPassword

然后使用@Value将这些值注入 API 客户端 bean:

@Component
public class ApiClient {

   @Value("${api.url}")
   private String url;

   @Value("${api.password}")
   private String password;

}

推荐阅读