Nach der Einführung des vorherigen Artikels glaube ich, dass meine Freunde nicht mehr helfen können, sondern sich nach Springboot sehnen können. In diesem Artikel werde ich meinen Freunden weiterhin die Konfiguration der Springboot -Konfigurationsdatei vorstellen. So verwenden Sie die globalen Konfigurationsparameter. OK, beginnen wir mit unserer Einführung in den heutigen Inhalt.
Wir wissen, dass Spring Boot die automatische Konfiguration von Containern unterstützt. Der Standardwert ist Tomcat. Natürlich können wir sie auch ändern:
1. Zunächst schließen wir Tomcat in der Abhängigkeit von Spring-Boot-Starter-Web aus: Tomcats Starter in der POM-Datei ausschließen
<De vorangestellt> <gruppe> org.springframework
2. Zu Stegbehälter hinzufügen
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Jetty </artifactid> </abhängig>
Auf diese Weise wird unser Springboot -Container in einen Stegbehälter modifiziert.
Um unser Debuggen zu erleichtern, finden Sie hier ein HTTP -Debugging -Tool für Sie: Postman
Sprechen wir über die globale Konfigurationsdatei von Springboot: Application.Properties
In der Entwicklung müssen wir auf eine solche Anforderung gestoßen haben, um unseren Containerzugriffsanschluss zu ändern. Da Springboot den Container standardmäßig lädt, werden die Porteinstellungen natürlich über Konfigurationsdateien gesteuert, was sehr bequem ist. Wir müssen es nur in die Konfigurationsdatei hinzufügen:
Server.port = 6666
Auf diese Weise wird unser Containerport auf 6666 geändert.
Wir können auch den Projektzugriff alias über Konfigurationsdateien festlegen:
server.context-path =/Springboot1
Auf diese Weise können wir das Projekt starten und auf unser Projekt über http: // localhost: 6666/Springboot1 zugreifen
Das obige ist nur die Spitze des Eisbergs der Konfiguration der Springboot -Konfigurationsdatei. Beispielsweise können wir auch die Datenbankverbindungskonfiguration einrichten, die Konfiguration der Entwicklungsumgebung einrichten, die Konfiguration der Umgebung bereitstellen und zwischen beiden nahtlosen Wechseln erreichen.
Lassen Sie uns über die Verwendung von Springboot's Controller erfahren. Springboot bietet uns drei Anmerkungen:
Im vorherigen Artikel haben wir @restController verwendet. Versuchen wir @Controller gemeinsam:
@Controller // @responseBodypublic class requestTest {/*** Keine Einschränkungen für Anforderungsmethode* @return*/@RequestMapPing (value = "/req") public String req () {return "Erfolg"; }}Wenn wir http: // localhost: 8080/springboot1/req eingeben, um in den Browser einzugeben, finden wir 404
{"Timestamp": 1515332935215, "Status": 404, "Fehler": "Keine Nachricht verfügbar", "Pfad": "/Springboot1/req"}Warum ist das? Dies liegt daran, dass @Controller mit der Vorlage verwendet werden muss, also öffnen wir die Maven POM -Datei und fügen die Vorlage von Springboot hinzu:
<!-SpringBoot-Vorlage-> <De vor Ort> <gruppe> org.springframework.boot </Groupid> <artifactid> Spring-Boot-Starter-Thymeleaf </artifactid> </abhängig>
Suchen Sie dann Vorlagen im Ressourcenverzeichnis unseres Projekts (erstellen Sie dann eine neue, aber stellen Sie sicher, dass der Ordnername konsistent sein muss), und erstellen Sie dann einen Erfolg.
Hier ist jedoch zu beachten, dass die aktuelle Entwicklung auf Unternehmensebene von vorne und hinteren Enden getrennt ist. Wenn wir Back-End-Dienste erbringen, müssen wir nur die entsprechenden Daten zurückgeben. Natürlich hat die Verwendung von Vorlagen einen weiteren Nachteil, dh Leistung führt zu bestimmten Verlusten, sodass jeder hier kurz verstehen kann.
Wie in der obigen Einführung erwähnt, entspricht @Controller+ @ResponseBody @RestController. Es wird daher empfohlen, @RestController hier zu verwenden.
Lassen Sie uns @RequestMapping (value = "/req") vorstellen. Ich glaube, jeder weiß bereits, dass er verwendet wird. Natürlich kann diese Annotation nicht nur in Methoden verwendet werden, sondern auch für Klassen gilt.
@RestController //@Controller //@responseBody@requestmaping (value = "/test") public class requestTest {/*** Keine Einschränkungen für Anforderungsmethode* @return*/@RequestMapping (value = "/req") public String req () {return "Erfolg"; }/** * Eingeschränkte Anforderungsmethode ist GET * @Return */@RequestMapping (value = "/req1", method = requestMethod.get) public String req1 () {return "Erfolg"; }/** * Die Einschränkungsanforderungsmethode ist post * @return */@RequestMapping (value = "/req2", method = requestMethod.post) public String req2 () {return "Erfolg"; }}Ich glaube, wenn Sie diese Methode sehen, müssen Sie bereits ihre Nützlichkeit kennen. Es handelt sich um einen bestimmten Zugriffstyp und kann in irgendeiner Weise zugegriffen werden, ohne die Standardeinstellung festzulegen. Ich weiß nicht, ob ich dachte, wenn die Methode in der @RequestMapping -Klasse festgelegt ist, wird die Methode in der Klasse standardmäßig vererbt. Natürlich können Sie es auch separat auf die Methode einstellen. Bitte probieren Sie das Prioritätsproblem selbst aus.
Im Folgenden werde ich Ihnen vorstellen, wie Sie Konstanten in Konfigurationsdateien in Controller zugreifen. Zuerst fügen wir die Konfigurationsdatei hinzu:
name = hpugsage = 35Content = Name: $ {name}; Alter: $ {Alter}Wir verwenden Konstanten in Konfigurationsdateien, die von $ {} verwendet werden.
Nachfolgend injizieren wir Parameter in den Controller:
// Parameter in die Konfigurationsdatei @Value ("$ {name}") privater String -Name; @Value ("$ {AGE}") Private Ganzzahl Alter; @Value ("$ {content}") privater String -Inhalt; @RequestMapping (value = "/req3", method = requestMethod.get) public String req3 () {return "name =" + name; } @RequestMapping (value = "/req4", method = requestMethod.get) public String req4 () {return "ay =" + älter; } @RequestMapping (value = "/req5", method = requestMethod.get) public String req5 () {return "content =" + content; }Starten Sie unser Projekt und versuchen Sie es zu besuchen.
Wenn Sie sich mit dieser Verwendung nicht zufrieden fühlen, verwenden wir hier einen weiteren Trick: Wir verwenden Konfigurationsdateien der Klassenzuordnung und verwenden Klassen, um Parameter zu verwenden. Es ist bequemer als die Injektion eines einzelnen Parameters. Erstellen Sie zunächst eine Java -Klasse
@Component@configurationProperties (Präfix = "userInfo") public class userInfo {private String -Namen; privates Ganzzahlalter; private String -Inhalte; public Ganzzahl getage () {Return Age; } public String getNames () {return names; } public void setNames (String -Namen) {this.names = names; } public void setage (Ganzzahl älter) {this.age = älter; } public String getContent () {return content; } public void setContent (String -Inhalt) {this.content = content; }}Stellen Sie dann die Parameter in unserer Konfigurationsdatei ein:
userInfo.names = Little kaputte untergeordnete userInfo.age = 25userinfo.content = name: $ {userInfo.names}; Alter: $ {userInfo.age}Verkabelung, um unseren Controller zu machen:
// Objekt @Autowired private userInfo userInfo injizieren; @RequestMapping (value = "/req6", method = requestMethod.get, produziert = "text/plain; charSet = utf-8") public String req6 () {return "name =" + userInfo.getNames (); } @RequestMapping (value = "/req7", method = requestMethod.get) public String req7 () {return "ay =" + userInfo.getage (); } @RequestMapping (value = "/req7", method = requestMethod.get) public String req7 () {return "ay =" + userInfo.getage (); } @RequestMapping (value = "/req8", method = requestMethod.get) public String req8 () {return "content =" + userInfo.getContent (); }OK, starten Sie unseren Projektbesuch neu.
Freunde, wissen Sie nicht, ob Sie auf dieses Problem stoßen? Es gibt verstümmelten chinesischen Code. Machen Sie sich zunächst keine Sorgen. Schauen wir uns eine andere Springboot -Konfigurationsdatei an: application.yml. Diese Konfigurationsdatei ersetzt ";"; durch Newline -Räume. Schauen wir uns an, wie die gleiche Konfiguration unter YML konfiguriert ist:
Server: Port: 8888 Kontext-Path: /SpringBoot1Name: HPUGSAGE: 35Content: Name: $ {Name}; Alter: $ {Alter} userInfo: Namen: Little Kid Age: 25 Inhalt: Name: $ {userInfo.names}; Alter: $ {userInfo.age}}}Beginnen wir nun das Projekt und versuchen es.
Wenn wir zu der obigen verstümmelten Frage zurückkehren, gibt es keinen verstümmelten, wenn wir YML verwenden? Bist du ein wenig depressiv? Warum ist das? Dies liegt daran, dass die Datei .Properties das Unicode -Codierungsformular verwendet, sodass der verstümmelte Code beim Eingeben von Chinesen angezeigt wird. Natürlich gibt es einen weiteren Grund für verstümmelten Code, dh den Codierungseinstellungen, die ich mit dem Front-End nicht übereinstimmen kann. Wir fügen dies der Konfigurationsdatei hinzu:
Frühling: HTTP: Codierung: Kraft: True Charset: UTF-8 aktiviert: TRUESERVER: TOMCAT: URI-CODING: UTF-8
Kontrolle. Hier sind einige Entwicklungs -Tipps. Springboot bietet uns Lösungen für verschiedene Konfigurationsdateien in verschiedenen Entwicklungsumgebungen:
#yml Format Spring: Profile: aktiv: prod#.Properties format Spring.profiles.active = Dev
Zusammenfassen
Die oben genannte Verwendung der Springboot -Fallstricknoten der Ihnen vorgelegten Springboot -Fallstricke. 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!