java - Spring Boot获取@Configuration类的环境变量

标签 java spring jdbc configuration datasource

我正在努力解决以下问题:

在我的springboot项目中,我想自己初始化一个数据源。在该方法中,我想使用从 YML 文件中读取的一些环境变量。

@Configuration
public class DataSourceConfig {
    @Bean
    public JdbcDataSource createMainDataSource() {
        // init datasource and read some environment variables
    }
}

应用程序.yml:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/XXX
    driverClassName: com.mysql.jdbc.Driver

然后我用 @Configuration 定义了另一个类,我在其中获取环境变量。

@Configuration
@ConfigurationProperties(prefix="spring.datasource")
public class PropertiesConfig {

    private String url;

    private String driverClassName;
}

但是现在我遇到了一个问题,类 DataSourceConfig 在 PropertiesConfig 之前被初始化,导致我无法使用环境变量。

你们中有人可以帮我吗?

最佳答案

要创建数据源,您需要 PropertiesConfig,因此只需将其注入(inject)到您的 bean 中即可:

@Configuration
public class DataSourceConfig {

    @Autowired
    private PropertiesConfig propertiesConfig;

    @Bean
    public JdbcDataSource createMainDataSource() {
        // init datasource and read some environment variables
    }
}

关于java - Spring Boot获取@Configuration类的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39638196/

相关文章:

php - 将 MySQL 数据库完全导入到 Solr 4 会出现 404 错误

java - R.layout.activity_main 添加LinearLayout

java - ModelAndView 不将模型返回到 spring mvc 中的 JSP

spring - 将 Spring Boot 从 1.3.7 升级到 1.4.0,导致 AuthenticatorBase.getJaspicProvider 出现 NullPointerException

java - SpringApplication.run 主方法

java - ActiveMQ - JDBC 持久化 MySQL : ACTIVEMQ_MSGS is empty

java - 像 Android 那样使用 stub 方法创建 API jar?

java - 你能在 Kotlin/Java 中强制编译器警告或错误吗?

spring - JSP属性文件读取

java - JDBC executeBatch() 在 PostgreSQL 中无错误地挂起