Hallo, das ist @chan_kaku Dieses Mal wird die Spring Boot 1.5-Serie im August dieses Jahres zu EOL, daher möchte ich versuchen, damit umzugehen und die schwierigen Punkte zu erwähnen.
Spring Boot ist ein Framework, mit dem Anwendungen auf der Grundlage des Spring-Frameworks einfach erstellt werden können. Weitere Informationen finden Sie in der offiziellen Dokumentation (https://spring.io/projects/spring-boot).
--Gradle3-Serie → Gradle5-Serie --Spring Boot 1.5-Serie → Spring Boot 2.1-Serie
Um es auf die SpringBoot2-Serie zu erhöhen, musste ich die Version von Gradle auf 4.4 oder höher erhöhen, also habe ich von hier aus daran gearbeitet Da das Zielprojekt diesmal Gradle Wrapper verwendete, habe ich gradle-wrapper.properties wie folgt geändert.
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip #Ich habe die Version hier geändert
Mit der oben genannten Unterstützung kann das Spring Boot 2-System endlich verwendet werden, daher werde ich die Version hier erhöhen. Die Grundlagen finden Sie im Spring Boot Github Wiki unter hier. Bitte
build.gradle
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Es war keine boot1.5-Serie, aber laut Document musste ich anscheinend "io.spring.dependency-management" hinzufügen.
In der Gradle3-Serie wurden Java und Spring Boot ebenfalls wie folgt beschrieben.
build.gradle
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
Ab der Gradle 5-Serie hat sich die Schreibmethode jedoch geändert, und es wird jetzt empfohlen, wie folgt als Block zu schreiben.
build.gradle
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'java'
}
Die Art und Weise, wie Abhängigkeiten geschrieben werden, hat sich ebenfalls erheblich geändert. Der Schreibstil bis zur Gradle 3-Serie ist so.
build.gradle
compile('org.springframework.boot:spring-boot-starter')
compile('org.springframework.boot:spring-boot-starter-web')
//.....etc
Grundsätzlich wurden die abhängigen Bibliotheken durch Kompilieren geschrieben. In der Gradle 5-Serie nimmt jedoch der Schreibstil der "Implementierung" zu und "Kompilieren" wird nicht mehr empfohlen. Der Unterschied zwischen "Kompilieren" und "Implementieren" ist einfach das Ausmaß der Abhängigkeitsausbreitung. Daher habe ich den als "kompilieren" geschriebenen Teil durch "Implementierung" ersetzt, wie unten gezeigt.
build.gradle
implementaion('org.springframework.boot:spring-boot-starter')
implementaion('org.springframework.boot:spring-boot-starter-web')
//.....etc
Dies wurde auch ein wenig geändert. Offizielles Dokument
Ich habe so geschrieben
build.gradle
jar {
baseName = "hoge"
archiveName = "${baseName}.jar"
version = "1.0.0-SNAPSHOT"
}
Von diesen waren "baseName" und "archiveName" veraltet, daher habe ich sie gemäß Dokument wie folgt geändert.
build.gradle
jar {
archiveBaseName = "hoge"
archiveFileName = "${archiveBaseName}.jar"
version = "1.0.0-SNAPSHOT"
}
baseName
geht zu archiveBaseName
Es scheint, dass archiveName
in archiveFileName
geändert wurde
Darüber hinaus wurden "Anhang" usw. geändert. Schauen Sie sich also bitte das Dokument an! !!
Doma2 wurde für den DB-Zugriff des diesmal aktualisierten Projekts verwendet. In den ursprünglichen Abhängigkeiten habe ich wie folgt geschrieben.
build.gradle
compile('org.seasar.doma.boot:doma-spring-boot-starter:1.1.0')
Wie Sie in der obigen Methode zum Schreiben von Abhängigkeiten sehen können, habe ich einfach "Kompilieren" durch "Implementieren" ersetzt und bin an einer unerwarteten Stelle hängen geblieben. Ich habe eine Fehlermeldung erhalten, dass ich nicht DI kann, weil die Dao-Bean nicht in der Klasse registriert ist, in der ich DIing. Ich konnte die Ursache für eine Weile nicht herausfinden, aber als ich mir das Dokument von doma2 ansah, gab es einen Unterschied zum ursprünglichen build.gradle Ich habe die folgenden Änderungen vorgenommen und es hat gut für die Registrierung von Dao's Bean funktioniert!
build.gradle
implementation('org.seasar.doma.boot:doma-spring-boot-starter:1.1.1')
implementation("org.seasar.doma:doma:2.24.0")
annotationProcessor("org.seasar.doma:doma:2.24.0")
Bis jetzt funktionierte es nur mit dem Top-Doma-Spring-Boot-Starter, aber ich musste mich mit der Implementierung von Metaion selbst hinzufügen. Es schien, dass ich "annotationProcessor" verwenden musste, um "doma" einzufügen Dieser "AnnotationProcessor" wurde aus der Gradle 5-Serie hinzugefügt. Der Grund, warum er hinzugefügt werden muss, besteht darin, dass die Gradle 5-Serie die Methode zum Abrufen des Annotation-Prozessors aus dem Klassenpfad zur Kompilierungszeit nicht unterstützt. .. Wenn Sie also nicht nur doma, sondern auch eine Bibliothek verwenden, mit der der Annotationsprozessor aus dem Klassenpfad abgerufen wurde, müssen Sie "annotationProcessor" wie folgt hinzufügen.
jackson ist eine Java-Bibliothek zur Verarbeitung von Daten im JSON-Format, die in diesem Projekt verwendet wurde. Wie im Beispiel trat beim Registrieren einer Bean in der Jackson-Bibliothek wie in doma2 ein Fehler auf, als ich einfach "compile" durch "implementaion" ersetzte. Dies könnte durch Aktualisierung der Version behoben werden.
Dieses Mal habe ich versucht, auf ein Projekt mit möglichst wenigen abhängigen Bibliotheken abzuzielen, um zu messen, wie schwierig diese Migration ist. Es gab jedoch mehr Abhängigkeiten als ich erwartet hatte und es war ein schwieriger Eindruck für mich persönlich. Da die EOL der Serie 1.5 voraussichtlich im August dieses Jahres erscheinen wird, empfehlen wir Ihnen, so schnell wie möglich umzuziehen! Ich hoffe, Sie finden diesen Artikel hilfreich.
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide https://qiita.com/yukina-ge/items/1ca029ed69494bfd36d6 https://qiita.com/opengl-8080/items/6ad642e0b016465891de https://doma.readthedocs.io/en/2.19.2/build/
Recommended Posts