2016-10-24 1 views
3

Ich habe die Komponentenklasse und pom.xml Abhängigkeiten wie unten. Die Eigenschaften werden nie festgelegt und bleiben als null erhalten.Spring @RefreshScope funktioniert nicht mit @Component

@Component 
@RefreshScope 
public class SecurityProperties1 { 

    @Value("${ad.url}") 
    public String adUrl; 

    @Value("${ad.manager.dn}") 
    public String managerDN; 

    @Value("${ad.manager.password}") 
    public String managerPassword; 

    @Value("${ad.search.base}") 
    public String searchBase; 

    @Value("${ad.user.filter}") 
    public String userFilter; 

} 

pom.xml

  <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-config</artifactId> 
      <version>1.2.1.RELEASE</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-commons --> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-commons</artifactId> 
      <version>1.1.4.RELEASE</version> 
     </dependency> 

Auch ist My Property Quelle wie unten

@Component 
public class CustomPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer { 

    @Override 
    protected String resolvePlaceholder(String placeholder, Properties props) { 
     return DynamicProperty.getProperty(placeholder); 
    } 

    @Override 
    protected String resolvePlaceholder(String placeholder, Properties props, int systemPropertiesMode) { 
     return DynamicProperty.getProperty(placeholder); 
    } 

} 
+1

Für Starter aufhören zu mischen Feder Cloud-Versionen. Und Ihre benutzerdefinierte 'PropertyPlaceholderConfigurer' bricht die ordnungsgemäße Verwendung. –

Antwort

0

ich gleiche Problem hatte. Meine Lösung: Ich fügte hinzu: proxymode = default Anmerkung

@Component 
@RefreshScope(proxyMode = DEFAULT) 
public class MyClass { 

    @Value("${test.value}") 
    private String testValue; 

    } 
Verwandte Themen