Verwenden Sie ein Konstrukt wie
@Component
public class SomeClass {
@Inject
private Environment env;
private String key;
@PostConstruct
private void init() {
key = env.getProperty("SOME_KEY_PROPERTY");
}
....
}
es ist möglich, ein Feld mit einer Eigenschaft zuzuordnen.
Gibt es ein kürzeres und kürzeres Formular, um dies zu tun?
@Component
public class SomeClass {
@Value("#{environment.SOME_KEY_PROPERTY}")
private String key;
....
}
Sie sollten dazu in der Lage sein (vorausgesetzt, Sie haben einen PropertySourcesPlaceHolderConfigurer registriert)
@Value("${SOME_KEY_PROPERTY}")
private String key;
Es könnte auch nützlich sein, einenStandardwertanzugeben, falls die Variable nicht definiert ist:
@Value("${some_property:default_value}")
private String key;
Andernfalls erhalten Sie eine Ausnahme, wenn some_property
nicht definiert ist.
default_value
kann auch leer sein, in diesem Fall verhält es sich so, als wäre some_property
optional:
@Value("${some_property:}")
private String key;
(Beachten Sie den Doppelpunkt)
Wenn der Standardwert Sonderzeichen enthält (Punkt, Doppelpunkt usw.), wickeln Sie ihn wie folgt in SpEL ein:
@Value("${some_property:#{'default_value'}}")
private String key;
Wenn Sie eine Umgebungsvariable als Standardwert hinzufügen müssen.
@Value("${awsId:#{environment.AWS_ACCESS_KEY_ID}}")
@Value("${awsSecret:#{environment.AWS_SECRET_ACCESS_KEY}}")
Dies ist eine Kombination aus zwei vorherigen Antworten.