SpringBoot 1系から2系への変更【備忘録】

springobootの1系を2系に変更する作業をしたので、その備忘録を書いておきます。

build.gradleの変更

Springboot2系に変更する

plugins {
id ‘org.springframework.boot’ version ‘2.6.1’
id ‘io.spring.dependency-management’ version ‘1.0.11.RELEASE’
id ‘java’
id ‘war’
}

dependenciesのcompileを変更する

compileだとエラーになるため、compileOnlyあるいはimplementationに変更する

htmlの共通化機能(layout:decorate)をdependenciesに入れる

下記の記述だったが、削除し
ext[‘thymeleaf-layout-dialect.version’] = ‘2.2.2’

下記記述として、dependenciesの中に入れた。
implementation ‘nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect’

thymeleaf-extras-springsecurityを4から5に変更

implementation ‘org.thymeleaf.extras:thymeleaf-extras-springsecurity4’

implementation ‘org.thymeleaf.extras:thymeleaf-extras-springsecurity5’
に変更

ログ関係のライブラリを最新を取り込むようにした

compileOnly group: ‘org.codehaus.janino’, name: ‘janino’, version: ‘2.7.8’

compileOnly group: ‘org.codehaus.janino’, name: ‘janino’
に変更

lombokを最新を取り込むようにした

バージョン指定していたので、削除し、最新にした

compileOnly “org.projectlombok:lombok:1.18.6”
annotationProcessor “org.projectlombok:lombok:1.18.6”

compileOnly ‘org.projectlombok:lombok’
annotationProcessor ‘org.projectlombok:lombok’

gradle-wrapper.propertiesの変更

gradleが6系だと、springBoot2系に対応していない為、7系に変更する

【gradle-wrapper.properties】
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
↓変更
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip

application.propertiesの変更

◆変更になっているプロパティがあるので、変更する
server.contextPath

server.servlet.context-path

循環参照をしていた箇所があったので、下記を追加
spring.main.allow-circular-references=true

Javaソースのimport変更

SpringBootServletInitializerの変更

importし直せば、自動で適当なインポートをしてくれる。

import org.springframework.boot.autoconfigure.web.ErrorController;

import org.springframework.boot.web.servlet.error.ErrorController;

SpringBootServletInitializerの変更

importし直せば、自動で適当なインポートをしてくれる。

import org.springframework.boot.web.support.SpringBootServletInitializer;

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

htmlの変更

th:onclickの利用を中止し、別方法(jQuery)を使い実装

「th:onclick」を使うと下記エラーとなる。

Only variable expressions returning numbers or booleans are allowed in this context, any other datatypes are not trusted in the context of this expression, including Strings or any other object that could be rendered as a text literal. A typical case is HTML attributes for event handlers (e.g. “onload”), in which textual data from variables should better be output to “data-*” attributes and then read from the event handler

なので、下記のように、data-の属性付与と、jQueryにてonclickでデータを披露用にして実装するように変更

th:onclick=”${‘showDetail(”’ + item.Id + ”’)’}”

th:data-parameter1=”${item.Id}” onclick=”‘showDetail( this.getAttribute(‘data-parameter1’) )”

今のところ、これくらいが見つかっているけど、エクセル関連やFTP関連、POP通信、スクレイピング関連、CSV関連、他システムへのHTTP通信関連など色々な機能の動作確認ができていないので、もしかしたら、これからたくさん出てくるかもしれない。その都度、追記していきます。