Die Infrastruktur, die Spring Boot verwendet, kann in Ihrem eigenen Projekt auf die gleiche Weise verwendet werden. Sie haben in @zmitrok eine Antwort zu einer Warnung "unbekannte Eigenschaft" kommentiert. Das liegt daran, dass Ihre Property keine Metadaten enthält, sodass die IDE nichts davon weiß.
Ich würde Ihnen dringend raten nicht @Value
zu verwenden, wenn Sie können, da es eher begrenzt ist im Vergleich zu dem, was Angebote Frühlings-Boot (@Value
ist eine Funktion, Spring Framework).
starten, indem Sie einige POJO für Ihre IP-Erstellung:
@ConfigurationProperties("app.foo")
public class FooProperties {
/**
* IP of foo service used to blah.
*/
private String ip = 127.0.0.1;
// getter & setter
}
Dann haben Sie zwei Möglichkeiten
- Put
@Component
auf FooProperties
und die Verarbeitung von Konfigurationseigenschaften ermöglichen durch Zugabe von @EnableConfigurationProperties
auf einem Ihrer @Configuration
Klasse (dieser letzte Schritt ist nicht mehr erforderlich ab Spring Boot 1.3.0.M3
)
- Lassen Sie
FooProperties
als i s und fügen Sie @EnableConfigurationProperties(FooProperties.class)
zu irgendeiner Ihrer Klasse hinzu, die eine Frühlings-Bohne automatisch für Sie verursacht.
Sobald Sie das getan haben, app.foo.ip
in application.properties
verwendet werden können, und Sie können @Autowired
FooProperties
im Code für den Wert der Immobilie
@Component
public MyRestClient {
private final FooProperties fooProperties;
@Autowired
public MyRestClient(FooProperties fooProperties) { ... }
public callFoo() {
String ip = this.fooProperties.getIp();
...
}
}
Gut aussehen, damit Ihre Schlüssel immer noch gelb ist in Ihrem IDE. Der letzte Schritt ist add an extra dependency that will look your code and generate the relevant meta-data at build time. Fügen Sie folgendes zu Ihrem pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
Und voilà, Ihr Schlüssel erkannt wird, haben Sie javadoc und die IDE gibt Ihnen den Standardwert (den Wert, den Sie auf dem Feld initialisiert). Sobald Sie das haben, können Sie einen beliebigen Typ verwenden, den der Konvertierungsservice behandelt (d. H. URL
), und das Javadoc auf dem Feld wird verwendet, um die Dokumentation für Ihre Schlüssel zu generieren.
Sie können auch eine JSR-303
Constraint-Validierung auf Ihrem Feld hinzufügen (z. B. eine Regex, um zu überprüfen, ob es sich um eine gültige IP handelt).
Überprüfen Sie this sample project und the documentation für weitere Details.
hatte Wow keine Ahnung von irgendetwas davon (vielleicht sollte ich beginnen, die doc Lesen etwas mehr) Das hat eine Tonne geholfen, danke. – Kingamere
Ich befolgte diese Schritte (Option 1 oben), aber Spring Tool Suite markiert immer noch meine Eigenschaft als unbekannt in der Datei 'application.properties'. Es gibt eine schnelle Lösung, um die Metadaten der Anwendung zu erstellen, aber ich nahm an, dass der 'Spring-Boot-Konfigurationsprozessor' das beheben sollte? –
Sie müssen das STS-Team fragen. Alles was ich weiß ist, dass es out-of-the-box funktionieren sollte. Es gibt nicht viel für uns zu untersuchen, erstellen Sie einen anderen Thread mit mehr Details bitte. –