[JAVA] Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie

Einführung

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.

Über Spring Boot

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).

Was ich getan habe (Übersicht)

--Gradle3-Serie → Gradle5-Serie --Spring Boot 1.5-Serie → Spring Boot 2.1-Serie

Gradle3-Serie → Gradle5-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

SpringBoot 1.5-Serie → Spring Boot 2.1-Serie

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'
}

Wechselpunkt

Es war keine boot1.5-Serie, aber laut Document musste ich anscheinend "io.spring.dependency-management" hinzufügen.

Wie schreibe ich Plugins

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'
}
Wie schreibe ich Abhängigkeiten?

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
Wie man um Glas herum schreibt

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! !!

Andere schwierige Punkte usw.

Über doma2

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.

Über Jackson

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.

Schließlich

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.

Referenzierte Site

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

Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Die Geschichte der Erhöhung von Spring Boot von 1.5 auf 2.1 Serie Teil2
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
Rüsten Sie den Federstiefel von der 1.5-Serie auf die 2.0-Serie auf
Über die Funktion von Spring Boot aufgrund unterschiedlicher Versionen
Die Geschichte des Übergangs von Spring Boot 1.5 zu 2.1
Was ich bei der Migration von der Spring Boot 1.4-Serie zur 2.0-Serie getan habe
Was ich bei der Migration von der Spring Boot 1.5-Serie zur 2.0-Serie getan habe
Ich möchte die Standardfehlermeldung von Spring Boot steuern
[Spring Boot] Ich habe untersucht, wie die Nachbearbeitung der empfangenen Anforderung implementiert werden kann.
Lassen Sie uns das Gefühl von Spring Boot + Swagger 2.0 überprüfen
Die Geschichte des Hinzufügens der neuesten Node.js zu DockerFile
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Geben Sie die statische Ressourcencodierung in Spring Boot an
Ein Memorandum über die Sucht nach Spring Boot2 x Doma2
Greifen Sie mit jdbcTemplate auf das integrierte h2db des Spring Boot zu
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Stellen Sie das Spring Boot-Projekt in XAMPP für Tomcat bereit
Booten nach Umgebung mit Spring Boot of Maven
Versuchen Sie Spring Boot von 0 bis 100.
Einführung in Spring Boot ~ ~ DI ~
Einführung in Spring Boot ② ~ AOP ~
Einführung in Spring Boot Teil 1
[Spring Boot] Die Geschichte, dass die Bean der Klasse mit der Annotation ConfigurationProperties nicht gefunden wurde
Stellen Sie Spring Boot-Anwendungen für Heroku bereit, ohne die Heroku-CLI zu verwenden
20190803_Java & k8s on Azure Die Geschichte vom Festivalbesuch
[Java] Stellen Sie die Spring Boot-Anwendung für den Azure App Service bereit
Schneiden Sie SQL in die Eigenschaftendatei mit jdbcTemplate von Spring Boot aus
Stellen Sie die von Spring Boot erstellte Anwendung für Heroku (öffentlich) bereit ②
Stellen Sie die von Spring Boot erstellte Anwendung für Heroku (öffentlich) bereit ①
Die Geschichte, Java mithilfe der BitBucket-Pipeline nach Heroku zu bringen
[Apache Tomcat] Die Geschichte der Verwendung von Apache OpenWebBeans zum Aktivieren von CDI
Memorandum beim Spring Boot 1.5.10 → Spring Boot 2.0.0
Spring Boot zum ersten Mal
[Java Edition] Geschichte der Serialisierung
So stellen Sie Spring Boot + PostgreSQL ein
Nachricht erlöschen (Spring Boot)
Die Geschichte von @ViewScoped, die Speicher verschlingt
Verwendung von ModelMapper (Spring Boot)
Filtern Sie das Ergebnis von BindingResult [Spring]
Ich möchte den Ablauf der Spring-Verarbeitungsanforderungsparameter verstehen
Rufen Sie in Spring Boot eine Proxy-Instanz der Komponente selbst ab
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
Die Geschichte von toString () beginnt mit der Übergabe eines Arrays an System.out.println
Sehen Sie sich das Verhalten von Entitätsaktualisierungen mit Spring Boot + Spring Data JPA an
Eine Geschichte, die mich bedauerte, als während der Entwicklung der Spring Boot-App eine "NotReadablePropertyException" auftrat.
Ich möchte die Methode des Controllers kennen, bei der die Ausnahme im ExceptionHandler von Spring Boot ausgelöst wurde
So wenden Sie Thymeleaf-Änderungen sofort mit #Spring Boot + maven auf den Browser an
[Einführung in Spring Boot] Überprüfung der Formularvalidierung
So lesen Sie Request Body mit Spring Boot + Spring Security mehrmals
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Die Geschichte der Aktualisierung des Docker-Containers von Sonar Qube
Die Geschichte des Wechsels von Amazon RDS für MySQL zu Amazon Aurora Serverless
So greifen Sie mit der TCP-Funktion von Spring Integration direkt auf Socket zu
Die Geschichte der ersten Veröffentlichung der Android-App im Play Store.
So bestimmen Sie die Anzahl der Parallelen