Einführung in Spring Boot
Spring Boot ist in letzter Zeit ein sehr beliebtes Framework, ein verbessertes Framework im Framework des Frühlings. Der Zweck dieses Frameworks ist es, die Geschwindigkeit der Entwickler zu erhöhen, die Schwierigkeit der Konfiguration usw. zu verringern, was den Entwicklungsprozess erheblich vereinfacht. Ausführliche Anweisungen finden Sie in der offiziellen Dokumentation. In der täglichen Arbeit gibt es nur sehr wenige Möglichkeiten, eine Umgebung oder einen Rahmen aufzubauen, und die meisten von ihnen werden ursprünglich entwickelt. Wenn Sie gebeten werden, einen einfachen Rahmen zu erstellen, treten verschiedene Schwierigkeiten auf. Als ich beispielsweise einen Server baute, habe ich eine kleine Demo vorbereitet. Ich fand es sehr einfach, aber ich stieß auf verschiedene Probleme. Ich stellte fest, dass die Blogs im Internet auf verstreute Weise über einige Punkte sprachen, und es war schwierig, einen vollständigen Prozess zu haben, einschließlich der Probleme, die möglicherweise auftreten. Hier finden Sie eine detaillierte Zusammenfassung des Prozesses des Aufbaus eines einfachen Projekts zur zukünftigen Referenz. Gleichzeitig ist dieser Blog auch eine grundlegende Vorbereitung für den nächsten Blog Tengine Reverse Proxy Server Construction.
Zwei Vorteile von Spring-Boot:
1. Das Konzept der "Konventionspriorität über Konfiguration (COC)" basierend auf dem Spring -Framework und dem Best Practice -Pfad.
2. Für tägliche Enterprise-Anwendungen konfiguriert Spring-Boot-Starter das Abhängigkeitsmodul automatisch und ist "außerhalb der Box" (herkömmliche Spring-Boot-Starter-wie das Namensnamen-Präfix in der org.spingframenwork.Boot-Paket oder Namespace).
In diesem Artikel werde ich meinen Freunden weiterhin die Konfiguration der Springboot -Konfigurationsdatei vorstellen. So verwenden Sie globale Konfigurationsparameter. Beginnen wir also mit unserer Einführung in heute.
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 =/Springboot
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
Das obige ist das Tutorial über die Verwendung von Spring-Boot-Starter-Web-Konfigurationsdatei, die der Editor Ihnen über die in der Spring-Boot-Entwicklung aufgetretenen Fallstricke vorgestellt hat. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!