2017-04-04 7 views
1

Ich habe eine Datenquellenkonfigurationsklasse in einer Spring-Boot-App. Snippet unter@Refreshscope mit Datenquellenkonfiguration

Meine Konfiguration wird vom Spring Cloud-Konfigurationsserver abgerufen. Wenn ich meinen DB-Hostnamen ändere und den Endpunkt mit der Option/refresh aktualisiere, verwendet die App KEINEN neuen DB-Host. Eine Idee warum?

@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

Ich bin mir nicht sicher, aber ich denke, Sie müssen den Bereich/Objekt (beim Ändern) zerstören und neu erstellen, um –

+0

@RDR widerspiegeln ist meine Antwort nützlich? – VelNaga

+0

Ya ...... Danke! – RDR

Antwort

1

Per docs, @ RefreshScope technisch auf @Configuration arbeiten, vorausgesetzt alles, was auf diesen Bohnen hängt verlassen können nicht auf sie aktualisiert werden, wenn ein Refresh ausgelöst wird, es sei denn, es selbst in @RefreshScope ist

Könnten Sie bitte Ihre "Environment.java" überprüfen, Sie können vergessen, @RefreshScope in Environment.java anzugeben. Bitte teilen Sie Ihre Environment.java, wenn es nicht funktioniert.

Verwandte Themen