2017-04-04 7 views
1

私はSpringブートアプリケーションにデータソース設定クラスを持っています。スニペット以下Datasource設定の@Refreshscope

設定はSpringクラウド設定サーバーから取得されます。 DBホスト名を変更してエンドポイントを使用してリフレッシュすると、アプリケーションは新しいDBホストを使用していません。理由は? docs 1として

@Configuration 
@RefreshScope 
public classe DBConfig 
{ 
    @Resource 
    private Environment env; 

    private DataSource ehubDataSource() { 
     DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
     dataSource.setDriverClassName(env.getProperty("datasource.driverClassName")); 
     dataSource 
       .setUrl(env.getProperty("datasource.url")); 
     dataSource.setUsername(env.getProperty("datasource.username")); 
     dataSource.setPassword(env.getProperty("datasource.password")); 
     return dataSource; 
    } 

} 
+0

私は確信していませんが、スコープ/オブジェクト(変更時)を破棄して、それを再作成する必要があると思います –

+0

@RDRは私の答えは便利ですか? – VelNaga

+0

ええと......ありがとう! – RDR

答えて

1

RefreshScopeは技術的に@Configuration上で動作します@、それは@RefreshScope

で、それ自体でない限り、これらのBeanに依存 何かが、リフレッシュが開始されたときにそれらが更新されているに頼ることはできません提供

"Environment.java"を確認してください。Environment.javaで@RefreshScopeを指定するのを忘れるかもしれません。 Environment.javaが動作していない場合は、共有してください。

関連する問題