本篇內容主要講解“SpringBoot1.X怎么升級到2.X.md”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“SpringBoot1.X怎么升級到2.X.md”吧!
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站設計、成都網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的平順網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
之前的部門管理網站中,缺少部分功能,如發(fā)起了請假申請后,又因為某些原因所以不請假了,這時就發(fā)現(xiàn)沒有刪除請假的功能。
在準備進行功能添加時,發(fā)現(xiàn)這個項目由于啟動于2017年10月,當時SpringBoot 2.X還未發(fā)布,所以還是使用1.X版本。介于SpringBoot 1.X版本已經宣布停止支持和維護,所以決定借此機會升級到SpringBoot 2.2.0,遇到一些問題,說明一下。
首先是修改build.gradle文件,由于gradle本身也在升級中,所以改動并非只有SpringBoot版本相關,還有Gradle版本相關的變動。
之前的版本,使用了外部變量
buildscript { ext { springBootVersion ='1.5.9.RELEASE' } }
同時,現(xiàn)在由于SpringBoot完全進入gradle的官方插件庫,所以也不在使用原有的
apply plugin: 'java' apply plugin: 'idea' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management'
模式,而是使用了新的plugins
語法
plugins { id 'org.springframework.boot' version '2.2.0.RELEASE' id 'io.spring.dependency-management' version '1.0.8.RELEASE' id 'java' id 'idea' }
另外,由于JUnit從4升級到5,所以相關的依賴也要更新,從
testCompile('org.springframework.boot:spring-boot-starter-test')
變?yōu)?/p>
testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' }
如果用到了文件上傳功能,從1.X升級到2.X后,設定上傳文件大小限制的參數(shù)也發(fā)生了變化
更變態(tài)的是,原來1.4.X之前和1.4.X之后的設定還不一樣
multipart.maxFileSize=100MB multipart.maxRequestSize=1000MB
spring.http.multipart.maxFileSize=100MB spring.http.multipart.maxRequestSize=1000MB
spring.servlet.multipart.maxFileSize=100MB spring.servlet.multipart.maxRequestSize=1000MB
真是逼死程序員系列啊??磥淼煤煤每纯催@份升級指南了
升級到SpringBoot2系列后,自帶的JUnit會升級到5系列,上述的依賴關系也發(fā)生變化,注意其中特地去除了junit-vintage-engine
,這是一個JUnit4的兼容測試引擎,由于項目本身的單元測試并不是很多,所以為了升級徹底,放棄使用老版本,這也造成了相應的測試也要做一些改動。
以下的變化需要改動
@RunWith
JUnit4測試,要用到Spring的能力,需要@RunWith(SpringRunner.class)
,但是JUnit5后,@SpringBootTest
注解直接幫你加了,所以不需要再加這個注解,也可以和Spring正常交互(事實上,JUnit5也變成@ExtendWith(SpringExtension.class)
了,但是由于不用自己手動加,所以就可以簡單認為不需要再加@RunWith
即可。
@Test
, Assertions
JUnit4的@Test
和assertEquals
這類class,都從原來的package移到新的package了
import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*;
@Before
, @After
等JUnit4中的一些注解,到了JUnit5后發(fā)生了變化,如@Before
變成了@BeforeEach
,具體的變化,可以參照這里
隨著SpringBoot的版本升級,Thymeleaf也從2.X升級到了3.0系列,由于出現(xiàn)了一個安全漏洞,所以在3.0.10之后,Thymeleaf模板中的onclick
函數(shù)不允許直接傳遞除數(shù)字和布爾型外的參數(shù)。需要進行修改。
假設 ${username}
的值是一個字符串,那么以前的版本
是正確的,但是到了3.0.10之后,就會出錯,應當改為
以上就是本次升級時遇到的一些問題及解決方法。
到此,相信大家對“SpringBoot1.X怎么升級到2.X.md”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!