Mit SpringBoot 2.0.3 wurden mehr als 99 Bugs und Fixes eingearbeitet. SpringBoot 2.0.3 wurde am 15.06.2018 veröffentlicht.
Neben Upgrades der Dependencies wurden 27 Fehler behoben.
Mit SpringBoot 2.0.3 wurden mehr als 99 Bugs und Fixes eingearbeitet. SpringBoot 2.0.3 wurde am 15.06.2018 veröffentlicht.
Neben Upgrades der Dependencies wurden 27 Fehler behoben.
SpringBoot prüft beim Starten alle Packages die in dem gleichen Package und unterhalb des Packages der @SpringBootApplication Annotations Klasse zu finden sind.
Möchte man die Struktur der Anwendung umändern, so muss man die Spring Boot mitteilen wo die Komponenten zu finden sind. Anderenfalls wird der Start der Anwendung zu Fehlern führen, da SpringBoot nicht alle Komponenten finden kann. Hierfür kann man z.B. an der Klasse, die die @SpringBootApplication Annotation besitzt, die Annotation @ComponentScan anfügen. Mit ComponentScan(BasePackages = {“”}) kann man als StringArray die Packages angegeben in denen die Komponenten zu finden sind.
Achtung: Komponenten die in oder unterhalb der @SpringBootApplication Klasse sich befinden müssen ebenfalls angegeben werden, da hier das Default Verhalten von SpringBoot überschrieben worden ist.
Kommt es beim Starten einer Spring Boot Anwendung zu einer ClassNotFoundException, weil die javax.xml.bind.JAXBException nicht gefunden worden ist, dann fehlt hier die Dependency für JAXB.
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) ~[na:na]
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) ~[na:na]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ~[na:na]
Hibernate benötigt typischerweise JAXB, welches per default ab Java 9 nicht mehr sichtbar ist. Entweder mit –add-modules java.xml.bind zur Laufzeit oder als Abhängigkeit einbinden.
Unter Gradle (letzte Version unter Maven Central suchen JAXB)
compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'
Die Spring Tools Suite ist noch in der Betaphase und noch nicht im Gegensatz zur Eclipse Oxigen oder Photon IDE vollumfänglich (changelog) unter neueren Java Versionen lauffähig. Dieses macht sich in Abstüzen im gesamten Programm bemerkbar. Pivotal empfiehlt STS 4 noch unter Java 8 laufen zu lassen.
Die zu startende VM (siehe WIKI) kann im .ini File angegeben werden.
-vm
/usr/lib/jvm/java-8-openjdk/bin/java
Die Konfiguration von Eclipse bzw. der Spring Tool Suite kann über About –> Installation details –> Configuration abgelesen werden. Hier taucht dann die verwendete JVM auf. java.version=1.8.0_162.
Im offiziellen Wiki von Archlinux wird auf ein kleines Skript verwiesen um Programme unter einer anderen JVM zu starten.
#!/bin/sh
export PATH=/usr/lib/jvm/java-8-jdk/jre/bin/:$PATH exec "$@"
unter ~/Bin abspeichern und /Bin z.B. in der ./.bashrc zum Pfad hinzufügen.
# add Bin to Path
PATH=${PATH}:~/Bin
Eine der erweiterten Funktionen laufen nur unter einer JDK. Siehe Eclipse.ini. Dazu gehört z.B. die live hover information.
Um die Migration von Anwendungen von 1.x nach 2.0 zu erleichtern, gibt es das spring-boot-properties-migrator Modul. Es ersetzt zur Laufzeit alle alten Keys durch die korrespondieren neuen Keys und gibt Migrationhinweise auf dem Log aus. Es empfiehlt sich also die Abhängigkeit mit einzubinden.
compile group: 'org.springframework.boot', name: 'spring-boot-properties-migrator', version: '2.0.0.RELEASE'