2016-10-24 2 views
3

У меня есть зависимости компонента и pom.xml, как показано ниже. Свойства никогда не устанавливаются и остаются нулевыми.Spring @RefreshScope не работает с @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> 

Также Мой источник собственности как ниже

@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

Для начала прекратите смешивать версии весеннего облака. И ваш пользовательский PropertyPlaceholderConfigurer нарушает правильное использование. –

ответ

0

У меня была такая же проблема. Мое решение: я добавил proxymode = default аннотация

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

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

    } 
Смежные вопросы