设计 网站,wordpress改字体大小,中小型企业网站大全,网络运营商远端无响应怎么解决最近公司在做监控日志平台的迁移#xff0c;从NewRelic迁移到Dynatrace#xff0c;为了配合迁移#xff0c;有一个前提就是把SpringBoot2升级到SpringBoot3。
我们这边的项目大多数都是KotlinSpringBoot2.X的技术栈#xff0c;现在要全部升级到最新的SpringBoot3.2.2或者S…最近公司在做监控日志平台的迁移从NewRelic迁移到Dynatrace为了配合迁移有一个前提就是把SpringBoot2升级到SpringBoot3。
我们这边的项目大多数都是KotlinSpringBoot2.X的技术栈现在要全部升级到最新的SpringBoot3.2.2或者SpringBoot3.2.3还是以Kotlin为主。
下面是官方指导Preparing for Spring Boot 3.0
首先做的第一件事把JDK11升级到JDK17以及把kotlin升级到1.9.21。
因为项目是使用的Gradle构建的所以需要把一些不兼容的语法给升级了例如旧的语法是
sourceSets {create(common-tests) {withConvention(KotlinSourceSet::class) {kotlin.srcDir(src/common-tests/kotlin)resources.srcDir(src/common-tests/resources)compileClasspath sourceSets[main].output configurations[testRuntimeClasspath]runtimeClasspath output compileClasspath}}create(integration-tests) {withConvention(KotlinSourceSet::class) {kotlin.srcDir(src/integration-tests/kotlin)resources.srcDir(src/integration-tests/resources)resources.srcDir(src/main/resources/schemas)compileClasspath sourceSets[main].output sourceSets[common-tests].output configurations[testRuntimeClasspath]runtimeClasspath output compileClasspath}}test {withConvention(KotlinSourceSet::class) {compileClasspath sourceSets[common-tests].output configurations[testRuntimeClasspath]runtimeClasspath output compileClasspath}}
}
修改后是
val SourceSet.kotlin: SourceDirectorySetget() project.extensions.getByTypeKotlinJvmProjectExtension().sourceSets.getByName(name).kotlinsourceSets.create(common-tests) {kotlin.srcDir(src/common-tests/kotlin)resources.srcDir(src/common-tests/resources)compileClasspath sourceSets[main].output configurations[testRuntimeClasspath]runtimeClasspath output compileClasspath
}sourceSets.create(integration-tests) {kotlin.srcDir(src/integration-tests/kotlin)resources.srcDir(src/integration-tests/resources)resources.srcDir(src/main/resources/schemas)compileClasspath sourceSets[main].output sourceSets[common-tests].output configurations[testRuntimeClasspath]runtimeClasspath output compileClasspath
}sourceSets.test {compileClasspath sourceSets[common-tests].output configurations[testRuntimeClasspath]runtimeClasspath output compileClasspath
}
等等还有一些就不列举了。
最后如果项目中用到了HttpClient就是需要自己单独引入因为SpringBoot3没有了。
implementation(org.apache.httpcomponents.client5:httpclient5:5.3.1) {exclude(group commons-logging, module commons-logging)}
因为启动的提示所以排除了commons-logging包。同时Httpclient的配置也需要修改
private fun getClientHttpRequestFactory(): ClientHttpRequestFactory {val requestConfig RequestConfig.custom().setConnectTimeout(workspaceDesignerConfigurationTimeout.toLong(), TimeUnit.MILLISECONDS).setResponseTimeout(workspaceDesignerConfigurationTimeout.toLong(), TimeUnit.MILLISECONDS).build()val httpClient HttpClients.custom().setDefaultRequestConfig(requestConfig).build()return HttpComponentsClientHttpRequestFactory(httpClient)}
再就是两个注解的引用
field:NotBlank field:Size(min 1, max 30)
他们之前所在包是
import javax.validation.constraints.NotBlank import javax.validation.constraints.Size
升级后需要修改到
import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.Size 注意查看升级后的驱动的依赖版本注意出现不兼容的情况。
其他的就是一些公司业务代码的改动了不适合公开了。
希望能对你们有所启发。