Springboot Project liest standardmäßig die Konfigurationsdatei application.Properties. Wenn Sie Eigenschaftendateien anpassen müssen, wie lesen Sie sie?
1. Erstellen Sie eine neue .Properties -Datei in Ressource
Erstellen Sie einen neuen Konfigurationsordner im Ressourcenverzeichnis und erstellen Sie dann eine neue .Properties -Datei und platzieren Sie sie in diesem Ordner. Wie in Remote.Properties in der Abbildung gezeigt
2. Schreiben Sie Konfigurationsdateien
Remote.UploadFilesurl =/ressourcen/file/remote.uploadpicurl =/ressourcen/pic/
3. Erstellen Sie eine neue Konfigurationsklasse remoteProperties.java
@Configuration@configurationProperties (Präfix = "Remote", IgnoreUnnownFields = False) @propertySource ("classPath: config/remote.properties")@data@componentpublic class class remoteProperties {private String UploadFilesurl; private String uploadpicurl;}In
@Configuration zeigt an, dass dies eine Konfigurationsklasse ist
@ConfigurationProperties (Präfix = "remote", ignoreUnntownfields = false) Diese Annotation wird verwendet, um Eigenschaften zu binden. Das Präfix wird verwendet, um das Präfix der Eigenschaft auszuwählen, dh "Remote" in der Datei remote.properties. IgnoreUnntownfields wird verwendet, um Springboot zu sagen, dass er eine Ausnahme ausgelegt hat, wenn eine Eigenschaft nicht mit der deklarierten Domain übereinstimmt.
@PropertySource ("ClassPath: config/remote.properties") Konfigurationsdateiweg
@Data Dies ist eine Lombok -Annotation, mit der Getter & Setter -Methoden generiert werden. Weitere Informationen finden Sie in den mit Lombok bezogenen Informationen.
@Component als Bean identifiziert
4. Wie kann man es benutzen?
Annotate EnableConfigurationProperties (remoteProperties.class) auf der Tabelle in der Klasse, in der die Methode, die Sie verwenden möchten, die Konfigurationsdatei verwenden möchten.
Und automatisch injizieren
@AutowiredRemoteProperties remoteProperties;
Verwenden Sie RemoteProperties.getUploadFileSurl () in der Methode, um den Konfigurationsinhalt zu erhalten.
@EnableConfigurationProperties (remoteProperties.class) @restControllerPublic Class TestService {@autowired remoteProperties remoteProperties; public void test () {string str = remoteProperties.getUploadFileSurl (); System.out.println (str); }}Hier befindet sich in der Konfigurationsdatei "/Ressourcen/Dateien/".
PS: Schauen wir uns zwei Möglichkeiten zum Lesen von Konfigurationsdateien im Spring-Boot an
Wenn Sie die Spring-Boot-Technologie verstanden haben, sollten Sie die Anwendung kennen.
Wie Springboot Konfigurationsdateien liest:
1. Lesen Sie die Informationen zur Kernkonfigurationsdatei von application.Properties
Die Kernkonfigurationsdatei bezieht sich auf die Konfigurationsdatei application.Properties oder application.yml im Root -Ressourcenverzeichnis. Es gibt zwei Möglichkeiten, diese beiden Konfigurationsdateien zu lesen, die beide relativ einfach sind.
Der Inhalt der Kernkonfigurationsdatei.Properties ist wie folgt:
test.msg = Hello World Springboot
Methode 1: Verwenden Sie @Value -Methode (häufig verwendet)
Paket Solin.Controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.restController; @RestController Public Class WebController {@Value ("$ {test.msg}") private String msg; @RequestMapping ("//index1") public String index1 () {return "Methode 1:"+msg; }} Hinweis: Der $ {} von @Value ist im Schlüsselnamen in der Kernkonfigurationsdatei enthalten. Wenn Sie @restController zur Controller -Klasse hinzufügen, werden alle Ansichten in dieser Klasse in JSON angezeigt, ähnlich wie bei der Ansichtsmethode @ResponseBody.
Beim Besuch: http: // localhost: 8088/index1 erhalten Sie: "Methode 1: Hello World Springboot"
Methode 2: Umgebungsmethode verwenden
Paket Solin.Controller; import org.springframework.beans.factory.annotation.autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.restController; @RestController Public Class WebController {@autowired Private Environment Env; @RequestMapping ("//index2") public String index2 () {return "Methode 2:"+env.getProperty ("test.msg"); }} HINWEIS: Diese Methode besteht darin, die Evnnironment zu verwenden, um die Abhängigkeitsinjektion zu vervollständigen. Fügen Sie die Annotation @Autowired zu der erstellten Mitgliedsvariablen -Private -Umgebung hinzu, um die Abhängigkeitsinjektion zu vervollständigen, und verwenden Sie dann Env.getProperty ("Schlüsselname"), um den entsprechenden Wert zu lesen.
Beim Besuch: http: // localhost: 8088/index2 erhalten Sie: "Methode 2: Hello World Springboot"
2. Lesen Sie die Informationen zur benutzerdefinierten Konfigurationsdatei, zum Beispiel: Author.Properties
Um die ursprüngliche Ökologie der Kerndatei nicht zu zerstören, sondern auch benutzerdefinierte Konfigurationsinformationen haben, werden im Allgemeinen benutzerdefinierte Konfigurationsdateien ausgewählt, um diese benutzerdefinierten Informationen zu platzieren. Hier wird die Konfigurationsdateiautor.Properties im Ressourcenverzeichnis erstellt.
Der Inhalt der Ressourcen/Autor.Properties ist wie folgt:
Autor.Name = Solin Autor.age = 22
Erstellen Sie eine Entitätsklasse für die Verwaltung der Konfiguration:
Paket Solin.Controller; import org.springframework.boot.context.properties.configurationProperties; import org.springframework.context.annotation.configuration; import org.springframework.stereotype.comPonent; // Um den Kommentar @Component hinzuzufügen, können Sie @AutoWired direkt an anderen Orten @Component @ConfigurationProperties (Präfix = "Autor", Locations = "ClassPath: Author.Properties") öffentliche Klasse MyWebconfig {private String -Name; privates int Alter; public String getName () {return name; } public void setName (String -Name) {this.name = name; } public int getage () {return ay; } public void setage (int age) {this.age = älter; }}Beachten:
Es gibt zwei Eigenschaften in der Annotation @ConfigurationProperties:
Standorte: Geben Sie den Speicherort der Konfigurationsdatei an
Präfix: Geben Sie das Präfix des Schlüsselnamens in der Konfigurationsdatei an (alle Schlüsselnamen in der Konfigurationsdatei hier beginnen mit dem Autor.)
Die Verwendung von @Component soll es der Klasse ermöglichen, von anderen Orten abhängig zu sein, dh Instanzen mit @autowired Annotation.
Erstellen Sie einen Testcontroller
Paket Solin.Controller; import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class configController {@autowired private MyWebConfig Conf; @RequestMapping ("/test") public @ResponseBody String test () {return "Name:"+conf.getName ()+"---"+"Alter:"+conf.getage (); }}Hinweis: Da @Component zur Conf -Klasse hinzugefügt wird, können Sie @Autowired direkt verwenden, um das Instanzobjekt zu erstellen.
Bei Besuch: http: // localhost: 8088/test erhalten Sie: "Name: Solin --- Alter: 22"
Zusammenfassen
Die obige Methode ist die Methode zum Lesen benutzerdefinierter Eigenschaften Konfigurationsdateien unter Springboot, die Ihnen vom Editor vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!