2017-04-04 433 views
1

我在Spring启动应用程序中有一个数据源配置类。下面的代码片段是@Refreshscope与数据源配置

我的配置是从Spring云配置服务器获取的。当我更改我的DB主机名并使用/ refresh端点刷新时,该应用程序不使用新的DB主机。任何想法为什么?

@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

docs,@ RefreshScope将在技术上对@Configuration工作,提供任何依赖于这些豆子不能靠刷新被启动时,他们被更新,除非是本身@RefreshScope

所以你可以检查你的“Environment.java”,你可能忘记在Environment.java中指定@RefreshScope。如果它不工作,请分享你的Environment.java。