温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SpringBoot1.X怎么升级到2.X.md

发布时间:2021-06-26 09:15:09 来源:亿速云 阅读:302 作者:chen 栏目:大数据

本篇内容主要讲解“SpringBoot1.X怎么升级到2.X.md”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot1.X怎么升级到2.X.md”吧!

简介

之前的部门管理网站中,缺少部分功能,如发起了请假申请后,又因为某些原因所以不请假了,这时就发现没有删除请假的功能。

在准备进行功能添加时,发现这个项目由于启动于2017年10月,当时SpringBoot 2.X还未发布,所以还是使用1.X版本。介于SpringBoot 1.X版本已经宣布停止支持和维护,所以决定借此机会升级到SpringBoot 2.2.0,遇到一些问题,说明一下。

升级步骤

build.gradle文件升级

首先是修改build.gradle文件,由于gradle本身也在升级中,所以改动并非只有SpringBoot版本相关,还有Gradle版本相关的变动。

之前的版本,使用了外部变量

buildscript {
    ext {
        springBootVersion ='1.5.9.RELEASE'
    }
}

同时,现在由于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')

变为

testImplementation('org.springframework.boot:spring-boot-starter-test') {
  exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
 }

SpringBoot的设定升级

如果用到了文件上传功能,从1.X升级到2.X后,设定上传文件大小限制的参数也发生了变化

更变态的是,原来1.4.X之前和1.4.X之后的设定还不一样

1.3.X及更早版本

multipart.maxFileSize=100MB
multipart.maxRequestSize=1000MB

1.4之后版本

spring.http.multipart.maxFileSize=100MB
spring.http.multipart.maxRequestSize=1000MB

2.X之后版本

spring.servlet.multipart.maxFileSize=100MB
spring.servlet.multipart.maxRequestSize=1000MB

真是逼死程序员系列啊。看来得好好看看这份升级指南了

JUnit相关升级

升级到SpringBoot2系列后,自带的JUnit会升级到5系列,上述的依赖关系也发生变化,注意其中特地去除了junit-vintage-engine,这是一个JUnit4的兼容测试引擎,由于项目本身的单元测试并不是很多,所以为了升级彻底,放弃使用老版本,这也造成了相应的测试也要做一些改动。

以下的变化需要改动

@RunWith

JUnit4测试,要用到Spring的能力,需要@RunWith(SpringRunner.class),但是JUnit5后,@SpringBootTest注解直接帮你加了,所以不需要再加这个注解,也可以和Spring正常交互(事实上,JUnit5也变成@ExtendWith(SpringExtension.class)了,但是由于不用自己手动加,所以就可以简单认为不需要再加@RunWith即可。

@Test, Assertions

JUnit4的@TestassertEquals这类class,都从原来的package移到新的package了

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

@Before, @After

JUnit4中的一些注解,到了JUnit5后发生了变化,如@Before变成了@BeforeEach,具体的变化,可以参照这里

Thymeleaf升级

随着SpringBoot的版本升级,Thymeleaf也从2.X升级到了3.0系列,由于出现了一个安全漏洞,所以在3.0.10之后,Thymeleaf模板中的onclick函数不允许直接传递除数字和布尔型外的参数。需要进行修改。

假设 ${username}的值是一个字符串,那么以前的版本

<button th:onclick="update(|${username}|)">

是正确的,但是到了3.0.10之后,就会出错,应当改为

<button th:data-username="|${username}|"
  th:onclick="update(this.getAttribute('data-username'))">

总结

以上就是本次升级时遇到的一些问题及解决方法。

到此,相信大家对“SpringBoot1.X怎么升级到2.X.md”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI