2015-05-29 7 views

Antwort

144

Sie die @Value Annotation verwenden können und die Eigenschaft zugreifen in welchen auch immer Spring-Bean Sie

@Value("${userBucket.path}") 
private String userBucketPath; 

Der Externalized Configuration Abschnitt des Frühlings-Boot-docs verwenden, erklärt all Details, die Sie benötigen.

+1

als Alternative kann man diese auch aus dem Bereich 'Environment' oder über' @ConfigurationProperties' erhalten – sodik

+1

Um dies hinzuzufügen, ist dies die Antwort von @ sodik ein Beispiel, das zeigt, wie die [Umgebung] (https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/env/Environment.html) http: // stackoverflow abgerufen wird. com/questions/28392231/how-to-bestimmen-programmatically-the-current-active-profile-using-spring-boot – cristi

+0

Was ist, wenn Sie auf mehr als 10 Werte zugreifen müssen, müssen Sie wiederholt Ihr Beispiel 10mal? – Jesse

88

Eine weitere Möglichkeit besteht darin, Environment in Ihre Bean zu injizieren.

@Autowired 
private Environment env; 
.... 

public void method() { 
    ..... 
    String path = env.getProperty("userBucket.path"); 
    ..... 
} 
+0

das ist wirklich nützlich, wenn Sie auf mehrere vars zugreifen müssen. Guter Rat – sarbuLopex

+0

auch nützlich, wenn der Name der Eigenschaft, auf die Sie zugreifen müssen, sich dynamisch ändert –

+1

Dies sollte die akzeptierte Antwort gewesen sein! – Spark

2

@ConfigurationProperties kann verwendet werden, um Werte zur Karte von .properties (.yml ebenfalls unterstützt) zu einer Modellklasse.

Betrachten Sie die folgende Beispieldatei.

.properties

cust.data.employee.name=Sachin 
cust.data.employee.dept=Cricket 

Employee.java

import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.context.annotation.Configuration; 

@ConfigurationProperties(prefix = "cust.data.employee") 
@Configuration("employeeProperties") 
public class Employee { 

    private String name; 
    private String dept; 

    //Getters and Setters go here 
} 

Nun kann die Eigenschaften Wert von employeeProperties autowiring zugegriffen werden wie folgt.

@Autowired 
private Employee employeeProperties; 

public void method() { 

    String employeeName = employeeProperties.getName(); 
    String employeeDept = employeeProperties.getDept(); 

} 
0

ich würde die folgende Art und Weise vorschlagen:

@PropertySource(ignoreResourceNotFound = true, value = "classpath:otherprops.properties") 
@Controller 
public class ClassA { 
    @Value("${myName}") 
    String name; 

    @RequestMapping(value = "/xyz") 
    @ResponseBody 
    public void getName(){ 
     System.out.println(name); 
    } 
} 

Hier wird Ihre neue Eigenschaften Dateiname „otherprops.properties“ ist und der Eigenschaftsname ist „myName“. Dies ist die einfachste Implementierung für den Zugriff auf die Eigenschaftendatei in der Spring Boot Version 1.5.8

Verwandte Themen