2016-09-22 9 views
0

の環境変数を取得します。このメソッドの中で、私はYMLファイルから読み込んだいくつかの環境変数を使いたいと思っています。SpringBootは、私は次のような問題に苦しんだ@Configurationクラス

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

Application.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を必要とする、あなたのデータソースを作成するには

+1

なぜ?また、これらのプロパティはすでにオブジェクトにバインドされているため、別のオブジェクトにバインドするのはなぜですか?オブジェクトがバインドされている –

+0

?どうすればそれらにアクセスできますか? – Patrick

+0

'DataSourceProperties' ...ちょっと待ってください。しかし、なぜあなたはそれを必要としますか?独自のデータソースを構築する簡単な方法があります(本当に必要な場合)。しかし、なぜあなたはあなた自身のものを構築する必要がありますか? –

答えて

2

ので、ちょうどあなたのBeanに注入:

@Configuration 
public class DataSourceConfig { 

    @Autowired 
    private PropertiesConfig propertiesConfig; 

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

素晴らしい。ありがとう! – Patrick

関連する問題