Einführung
Einer der wichtigsten Aspekte vor Beginn eines Projekts, unabhängig davon, ob es sich um ein kleines Projekt oder eine Anwendung für Unternehmensqualität handelt, ist das Abhängigkeitsmanagement. Die manuelle Durchführung des Abhängigkeitsmanagements für kleine Anwendungen ist keine schwierige Aufgabe, aber für komplexe Anwendungen ist das manuelle Verwalten aller Projektabhängigkeiten nicht ideal, anfällig für viele Probleme und Zeitverschwendung, die für einige andere wichtige Aspekte des Projekts verwendet werden können.
Eines der Grundprinzipien hinter Spring Boot ist es, ähnliche Probleme zu lösen. Spring Boot Starter ist ein bequemer Satz von Abhängigkeitsdeskriptoren, die in jeder Ebene der Anwendungen problemlos enthalten sein können. Diese Starter sind der Kartonprozess für federbezogene Technologien, und wir müssen uns keine Sorgen mehr um Abhängigkeiten machen, sie werden automatisch von Spring Boot Startern verwaltet.
Der Starter enthält viele Abhängigkeiten, die Sie benötigen, um Ihr Projekt schnell zum Laufen zu bringen, und verfügt über eine konsistente, unterstützte Reihe von verwalteten transitiven Abhängigkeiten.
1. Warum brauchen wir Starter?
Als wir anfingen, Anwendungen mit Spring Boot zu entwickeln, war eine der grundlegenden Fragen, die uns in den Sinn kamen, warum wir Spring -Boot -Starter brauchen? Oder wie helfen mir diese Starter in meiner App?
Wie bereits erwähnt, werden diese Starter verwendet, um die Anwendung zu starten. Wir müssen lediglich die richtigen Starter in die Anwendung einbeziehen, und der Spring Boot stellt sicher, dass alle für die ausgewählten Starter erforderlichen Abhängigkeiten in Ihrem Klassenpfad sind.
Um es klarer zu verstehen, geben wir ein Beispiel an, wir möchten eine einfache Spring -Web -MVC -Anwendung erstellen und müssen die folgenden Punkte berücksichtigen, bevor wir unseren Webanwendungscode schreiben.
Die Verwendung von Spring-Boot-Startern, um unsere Spring MVC-Webanwendung zu starten, ist sehr einfach. Wir müssen Spring-Boot-Starter-Web in unserem pom.xml aufnehmen:
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Web </artifactid> </abhängig>
Der obige Eintrag in pom.xml stellt sicher, dass alle erforderlichen Abhängigkeiten im Klassenpfad sein sollten, sodass wir alle bereit sind, eine Webanwendung zu entwickeln.
Derzeit bietet Spring Boot etwa 50 Starter, die keine Starter von Drittanbietern enthalten. Eine Update -Liste von Startern finden Sie unter Spring Boot Starter
Als nächstes werde ich einige gemeinsame Starter vorstellen.
2. Webstarter
Dies ist einer der am häufigsten verwendeten Spring-Boot-Starter, mit dem sichergestellt wird, dass alle Abhängigkeiten, die zum Erstellen von Spring-Webanwendungen (einschließlich REST) erforderlich sind, in Ihrem CALSSspath enthalten sind. Außerdem werden Tomcat-Starter als Standardserver zum Ausführen unserer Webanwendungen hinzugefügt. Fügen Sie den folgenden Eintrag in pom.xml hinzu, um Webstarter in unsere Anwendung aufzunehmen.
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Web </artifactid> </abhängig>
Jetzt können wir unseren Spring MVC -Controller erstellen
@RestController Public Class SampleController {@RequestMapping ("/Begrüßung") StringHello () {return "helloWorld!"; }}Wenn Sie die Bewerbung ausführen und http: // localhost: 8080/grueting besuchen, sollten Sie in der Lage sein, "Hallo Wort" als Antwort zu erhalten. Wir haben einen REST -Controller mit minimalem Code erstellt.
3. Data JPA Starter
Die meisten Anwendungen erfordern einen gewissen Persistenzmechanismus, und JPA ist der Standard für Persistenz. Spring -Boot -Starter werden mit JPA -Startern geliefert. Sie müssen diese JPA -Abhängigkeiten nicht mehr manuell konfigurieren, können jedoch leicht erreicht werden, indem Sie JPA -Starter zu Ihrer Anwendung hinzufügen.
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Data-jpa </artifactid> </abhängig> <depeaponcy> <gruppe> com.h2database </Groupid> <artifactid> H2 </artifactid> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </abhängig> </cresce> </</abhängig> </</abhängig> </</croment> </</cresce> </</</</</</</</</</</</</</</</</</Abhängig "
Spring JPA Starter bietet automatische Unterstützung für H2, Derby und HSQLDB. Lassen Sie uns sehen, wie einfach es ist, eine JPA -Beispielanwendung mit JPA -Starter zu erstellen.
@EntityPublic Class User {@ID @generatedValue (Strategy = GenerationType.auto) Private Long ID; private String FirstName; private Zeichenfolge Lastname; Protected User () {} public user (String firstName, String LastName) {//this.id = id; this.firstname = FirstName; this.lastName = LastName; } public long getid () {return id; } public void setId (Long id) {this.id = id; } public String getFirstName () {return firstname; } public void setFirstName (String FirstName) {this.firstname = firstName; } public String getLastName () {return LastName; } public void setLastName (String LastName) {this.lastName = lastName; } @Override public String toString () {return "user {" + "id =" + id + ", firstname = '" + FirstName +'/'' + ", LastName = '" + LastName +'/'' + '}'; }}Hier ist unser UserPository:
öffentliche Schnittstelle userRepositoryEdendends crudrepository <user, long> {list <user> findUserBylastName (String LastName);}Als nächstes können wir unseren Code wie folgt testen:
@Runwith (springrunner.class) @springBoottestpublic Class JPademoApplicationTests {@autowired userrepository userrepository; @Test public void contextloads () {user user = userRepository.save (neuer Benutzer ("Demo", "user")); User SearchUser = userRepository.findone (user.getId ()); Assertnotnull (SearchUser); assertequals (user.getFirstname (), SearchUser.getFirstname ()); }}Wie wir im obigen Code gesehen haben, müssen Sie diese Datenbankkonfigurationen oder zusätzliche Datenbankkonfigurationen nicht mehr angeben. Wenn Sie einen JPA-Starter hinzufügen, erhalten wir viele optimale Funktionen ohne Konfiguration oder Codierung.
Sie können diese Konfigurationen bei Bedarf jederzeit ändern oder anpassen.
4. Mailstarter
Das Senden von E -Mails aus Anwendungen ist eine sehr häufige Aufgabe, und jetzt muss jede Bewerbung E -Mails aus dem System senden. Spring Boot Mail -Starter bietet eine einfache Möglichkeit, diese Funktion zu bewältigen, indem alle Komplexitäten versteckt sind.
Wir können den E -Mail -Support aktivieren, indem wir der App Mailstarter hinzufügen.
<Depopenty> <gruppe> org.springframework.boot </Groupid> <artifactId> Spring-Boot-Starter-E-Mail </artifactid> </abhängig>
Ich verwende Mailgun als SMTP -Server. Hier finden Sie die SMTP -Details, die meiner Anwendung hinzugefügt wurden. Properties -Datei:
spring.mail.host=smtp.mailgun.orgspring.mail.username=postmaster@domain.com.spring.mail.password=mypasswordspring.mail.pr operties.mail.transport.protocol = SMTPSpring.mail.properties.mail.smtp.port = 587spring.mail.properties.mail.smtp.auth = true
Unsere E -Mail -Service -Klasse ist für das Senden von E -Mails verantwortlich:
@ComponentPublic Class JavaemailService {private Javamailsender MailSender; public JavaemailService (Javamailsender Mailsender) {this.mailSender = mailsender; } public void sendemail () {mimemessagePreparator messagePreparator = mimemessage -> {mimemessageHelper Helper = new MimemessageHelper (Mimemessage); helper.setfrom ("[email protected]"); Helper.setto ("[email protected]"); helper.setsubject ("Beispielpost Betreff"); Helper.setText ("Test -E -Mail"); }; MailSender.Send (MessagePreparator); }}Wir verwenden den von Spring bereitgestellten Javamailsender, um E -Mails zu senden. Der Junit -Testcode lautet wie folgt:
@Runwith (springrunner.class) @springBoottestPublic Class E -MailTest {@autowired JavaMailService JavaemailService; @Test public void sendemail () {JavaemailService.sendemail (); }}In ähnlicher Weise stellt das Senden einer einfachen E -Mail mit einfach einfachem Code und Konfiguration sicher, dass alle erforderlichen Tools vorhanden sind, um schnell echte Probleme zu lösen.
Bitte beachten Sie, dass wir Javamailsender in der JavaemailService -Bean verwenden - die Bean wird automatisch mit Spring Boot erstellt.
5. Teststarter
Wir verwenden normalerweise JUNIT, Mockito oder Spring Test, um unsere Anwendungen zu testen. Wir können alle diese Bibliotheken problemlos in unsere Anwendung einbeziehen, indem wir Spring -Boot -Teststarter hinzufügen.
<Depopenty> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Test </artifactid> </abhängig>
Spring Boot findet unsere korrekte Version für unsere Anwendungstests automatisch. Hier ist ein Junit -Beispieltest:
@Runwith (springrunner.class) @springBoottestPublic Class E -MailTest {@autowired JavaMailService JavaemailService; @Test public void sendemail () {JavaemailService.sendemail (); }}Zusätzlich zu diesen Startern finden Sie andere häufig verwendete Federstiefelstarter.
Spring-Boot-Starter-Securityspring-Boot-Starter-Web-Dienste-Dienste-Start-Starter-Integrationspring-Boot-Starter-Validationspring-Boot-Starter-Actuator
Wie bereits erwähnt, finden Sie in Spring Boot Starter die neueste Liste der von Spring Boot bereitgestellten Starter.
Zusammenfassen
Dieser Artikel bietet eine Einführung in Spring Boot Starter, in der wir diskutieren, warum wir diese Starter brauchen und wie sie uns helfen können, unsere Anwendungen schnell zu leiten. Wir haben einige der am häufigsten verwendeten Spring -Boot -Starter untersucht.