Letzte Woche hat das Spring Boot-Team die Veröffentlichung von Spring Boot 1.4.0 M2 angekündigt. Die endgültige Veröffentlichung wird voraussichtlich nächsten Monat erfolgen. In der neuen Version stehen viele Änderungen an. In diesem Beitrag werde ich die Zusammenfassung der neuen Funktionen in Spring Boot 1.4 auflisten. Wenn Sie daran interessiert sind, die neuesten Updates zu Spring Boot zu erhalten, abonnieren Sie uns bitte hier.
Neue Funktionen in Spring Boot 1.4
Hier ist das Inhaltsverzeichnis für dieses Tutorial:
1. Ausführbares JAR-Layout
Wenn Sie die JAR-Datei als ausführbare Spring-Boot-Anwendung erstellen, werden alle Abhängigkeiten darunter gepackt WEB-INF/lib
und die eigenen Klassen der Anwendung sind Pakete im Stammverzeichnis der JAR-Datei. Aber Spring Boot 1.4.0 packt die Abhängigkeiten darunter BOOT-INF/lib
und anwendungseigene Klassen unten BOOT-INF/classes
.
2. Verbesserungen bei Startfehlern
Es gibt eine Verbesserung bei der Anzeige der nützlichen Fehlerbeschreibung bei Startfehlern. Vor 1.4.0 zeigen Startfehler einen langen Stack-Trace, der das eigentliche Problem nicht anzeigt, es sei denn, ein Entwickler muss den vollständigen Stack-Trace lesen. Die neueste Version zeigt jedoch nur die Ursache des Fehlers und die Lösung.
Wenn das Problem darin besteht, dass der Port des eingebetteten Servlet-Containers von einem anderen Dienst verwendet wird, lautet die vorhandene Fehlermeldung wie folgt:
2016-02-16 17:46:14.334 ERROR 24753 --- [ main] o.s.boot.SpringApplication : Application startup failed java.lang.RuntimeException: java.net.BindException: Address already in use at io.undertow.Undertow.start(Undertow.java:181) ~[undertow-core-1.3.14.Final.jar:1.3.14.Final] at org.springframework.boot.context.embedded.undertow.UndertowEmbeddedServletContainer.start(UndertowEmbeddedServletContainer.java:121) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:293) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:141) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at sample.undertow.SampleUndertowApplication.main(SampleUndertowApplication.java:26) [classes/:na] Caused by: java.net.BindException: Address already in use at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_60] at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_60] at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_60] at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_60] at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_60] at org.xnio.nio.NioXnioWorker.createTcpConnectionServer(NioXnioWorker.java:190) ~[xnio-nio-3.3.4.Final.jar:3.3.4.Final] at org.xnio.XnioWorker.createStreamConnectionServer(XnioWorker.java:243) ~[xnio-api-3.3.4.Final.jar:3.3.4.Final] at io.undertow.Undertow.start(Undertow.java:137) ~[undertow-core-1.3.14.Final.jar:1.3.14.Final] ... 11 common frames omitted
Die verbesserte Nachricht würde so aussehen:
2016-02-16 17:44:49.179 ERROR 24745 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Embedded servlet container failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
3. Ruhezustand 5
Hibernate 5.1 ist der standardmäßige persistente Anbieter für Spring Boot 1.4.0. Wenn Sie von Spring Boot 1.3.0 auf 1.4.0 migrieren, müssen Sie von Hibernate 4.3 auf 5.1 wechseln. Hibernate 4.3 wird nur bis zum Ende der Spring Boot 1.4-Versionen unterstützt, danach wird es nicht mehr unterstützt. Daher ist es ratsam, sofort auf die neuesten Hibernate-Versionen zu aktualisieren.
- Lesen Sie auch: Frühlings- und Ruhezustandsintegration
Wenn Sie in Ihrer Bewerbung weiterhin die ältere Version verwenden möchten, ergänzen Sie bitte die folgenden Einträge in Ihrer pom.xml
:
<properties> <hibernate.version>4.3.11.Final</hibernate.version> </properties>
4. Spring Framework 4.3
Spring Boot 1.4.0 erfordert und baut auf Spring Framework 4.3 auf. Im Rahmen dieser Version wurden viele gute Funktionen hinzugefügt. Sie können die Zusammenfassung der neuen Funktionen lesen, die in Spring Framework 4.3 eingeführt wurden (Lesen Sie auch: Spring 4-Tutorials).
5. Bibliotheken Dritter
Liste der Drittanbieter-Bibliotheken, die auf die neueste Version aktualisiert werden:
- Ruhezustand 5.1
- Jackson 2.7
- Solr 5.5
- Spring Data Hopper
- Frühlingssitzung 1.2
- Hazelcast 3.6.
6. Benutzerdefinierter JSON-Serialisierer und Deserialisierer
Wenn Sie eine Bean als JSON-Komponente registrieren möchten, können Sie diese verwenden @JsonComponent
Anmerkung wie folgt:
@JsonComponent public class Example { .... }
@JsonComponent
In der Anwendung wird der Kontext automatisch bei Jackson registriert.
7. Neue Unterstützung für die automatische Konfiguration
Spring Boot fügt für jede Version neue Autokonfigurationsmodule hinzu. In dieser Version wurden außerdem einige weitere Module hinzugefügt, um die automatische Konfiguration zu unterstützen.
7.1. Couchbase
Couchbase ist eine der beliebtesten NoSQL-Datenbanken. Spring Boot fügt Unterstützung für die automatische Konfiguration dieser Datenbank hinzu. Jetzt können Sie problemlos darauf zugreifen Bucket
Und Cluster
Bohne durch Zugabe der spring-boot-starter-data-couchbase
Starter-POM und etwas mehr Konfiguration hinzufügen:
spring.couchbase.bootstrap-hosts=my-host-1,192.168.1.123 spring.couchbase.bucket.name=my-bucket spring.couchbase.bucket.password=secret
7.2. Neo4j
Für die Neo4j-Datenbank wurde Unterstützung für die automatische Konfiguration hinzugefügt.
7.3. Narayana-Transaktionsmanager
Für den Narayana-Transaktionsmanager wurde jetzt Unterstützung für die automatische Konfiguration hinzugefügt. Sie können zwischen Narayana, Bitronix oder Atomkos wählen, wenn Sie JTA-Unterstützung benötigen.
7.4. Koffein-Cache
Für Caffeine v2.2 wurde eine automatische Konfiguration hinzugefügt. Bestehende Guava-Cache-Benutzer sollten eine Migration zu Caffeine in Betracht ziehen, da die Guava-Cache-Unterstützung in einer zukünftigen Version eingestellt wird.
8. Aktuatorverbesserungen
In dieser Version gibt es bei den Federmanschetten-Aktuatormodulen nicht viele neue Funktionen. Es gibt eine leichte Verbesserung beim Info-Endpunkt-Informations- und Metrikfilter.
Jetzt können Sie sich registrieren InfoContributor
Schnittstelle zum Registrieren der Beans, die die Informationen den Info-Aktuator-Endpunkten zugänglich machen. Die Unterstützung erfolgte für:
- Vollständige oder teilweise Git-Informationen, die von einem Build-Plugin generiert wurden
- Build-Informationen, die mit dem Spring Boot Maven- oder Gradle-Plugin generiert wurden.
- Benutzerdefinierte Informationen aus der Umgebung (Anfangsinformationen aller Eigenschaften.*)
9. Testverbesserungen
Spring Boot 1.4 fügt wesentliche Verbesserungen der Testunterstützung hinzu. Mit der neuen Version werden alle Testklassen in die dedizierten verschoben spring-boot-test
Und spring-boot-test-autoconfigure
.
@SpringBootTest
Anmerkung ersetzt die alte,@SpringApplicationConfiguration
@ContextConfiguration
mit dem SpringApplicationContextLoader
, @IntegrationTest
oder @WebIntegrationTest
.
Spring Boot 1.4 führt eine Reihe spezieller Testanmerkungen ein, die zum Testen bestimmter Teile Ihrer Anwendung verwendet werden können:
Spring Boot 1.4 führt eine Reihe spezieller Testanmerkungen ein, die zum Testen bestimmter Teile Ihrer Anwendung verwendet werden können:
- @JsonTest – Zum Testen des JSON-Marshallings und -Unmarshallings.
- @WebMvcTest – Zum Testen von Spring MVC @Controllern mit MockMVC.
- @DataJpaTest – Zum Testen von Spring Data JPA-Elementen
Es gibt viele weitere Verbesserungen, die in der obigen Liste nicht aufgeführt sind. Ich werde in den zukünftigen Tutorials eine ausführliche Analyse jeder Funktion schreiben. Wenn Sie die neuesten Updates zu Spring Boot erhalten möchten, abonnieren Sie bitte hier.
10. Zusammenfassung
In diesem Tutorial habe ich die Liste der neuen Funktionen zusammengefasst, die im Rahmen der Spring Boot-Version 1.4 hinzugefügt werden. Ich habe nur die bemerkenswerten Funktionen behandelt, aber es gibt viele andere kleinere Verbesserungen, die hier nicht erklärt werden. Insgesamt ist Spring Boot 1.4 eine der wichtigsten Veröffentlichungen von Spring Boot mit zahlreichen Verbesserungen. Wenn Sie mit Spring Boot arbeiten, ziehen Sie bitte ein Upgrade auf die neueste Version in Betracht.
Vielen Dank, dass Sie meinen Blog gelesen haben!! Viel Spaß beim Lernen!!
Wenn Sie Fragen zu Spring Boot haben, schreiben Sie diese bitte in den Kommentarbereich. Wenn Sie an einem Spring-Projekt arbeiten und Beratung zur Spring-Boot-Implementierung suchen, können Sie mich gerne kontaktieren. Ich werde mein Bestes geben, um Ihnen zu helfen.
Referenz: