2015-06-17 10 views
12

Mam klasę właściwości poniżej w moim projekcie wiosennego rozruchu.Spring-boot: ustaw domyślną wartość konfigurowalnych właściwości

@Component 
@ConfigurationProperties(prefix = "myprefix") 
public class MyProperties { 
    private String property1; 
    private String property2; 

    // getter/setter 
} 

Teraz chcę, aby ustawić wartość domyślną do jakiegoś innego mienia w moim pliku application.properties dla property1. Podobny do tego poniżej przykład nie używając @Value

@Value("${myprefix.property1:${somepropety}}") 
private String property1; 

Wiem, że możemy przypisać wartość statyczną tak jak w poniższym przykładzie, gdzie „wartość domyślna” jest przypisana wartość domyślna dla property,

@Component 
@ConfigurationProperties(prefix = "myprefix") 
public class MyProperties { 
    private String property1 = "default value"; // if it's static value 
    private String property2; 

    // getter/setter 
} 

Jak zrób to przy użyciu klasy @ConfigurationProperties (raczej właściwości konfiguracji typu typesafe) podczas wiosennego rozruchu, gdzie moją domyślną wartością jest inna właściwość?

+0

Proszę zobaczyć to pytanie: [http://stackoverflow.com/questions/29220498/why-is-configurationproperties-not-overriding-defaults-in-my-case](http://stackoverflow. com/questions/29220498/why-is-configurationproperties-not-overriding-defaults-in-my-case) –

Odpowiedz

5

Sprawdź, czy właściwość 1 została ustawiona za pomocą @PostContruct w klasie MyProperties. Jeśli nie, możesz przypisać ją do innej nieruchomości.

@PostConstruct 
    public void init() { 
     if(property1==null) { 
      property1 = //whatever you want 
     } 
    } 
+2

Rozwiązało to mój problem na razie. Ale myślę, że wiosna powinna zapewniać wsparcie dla tego samego, tak jak @Value. –

+0

Szukałem, jak ustawić domyślne ustawienia i to była jedyna odpowiedź, jaką mogłem znaleźć .. ale [na tej wiki] (https://github.com/spring-projects/spring-boot/wiki/Spring-Boot- Wiązanie konfiguracji # wartość domyślna) wydaje się, że można ustawić domyślną wartość właściwości, jak można się spodziewać. – evandongen