minglipro 8ef3cb5ba4
refactor(kotlin): 重构 AES 工具类并优化 Base64 编解码方法
- 重构 AesUtils.kt,使用 Kotlin 标准库的 encode 和 decode 方法替代自定义实现- 删除 Java 版本的 Base64Utils 类,迁移到 Kotlin 实现
- 重命名 ByteUtil.kt 为 ByteUtils.kt,统一命名风格
- 删除 Java 版本的 CloneUtil 类和 Factory 类,使用 Kotlin 实现
- 新增 Kotlin 版本的 SpringBeanUtils 工具类重构项目,迁移到 Kotlin

- 将 Java 文件转换为 Kotlin 文件
- 更新项目结构和命名- 优化代码实现
- 添加必要的依赖
2025-09-14 22:10:47 +08:00

92 lines
3.6 KiB
Kotlin

/*
* Copyright 2025 mingliqiye
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* ProjectName mingli-utils
* ModuleName mingli-utils.main
* CurrentFile GsonAutoConfiguration.kt
* LastUpdate 2025-09-14 22:06:47
* UpdateUser MingLiPro
*/
package com.mingliqiye.utils.springboot.autoconfigure
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.mingliqiye.utils.json.GsonJsonApi
import com.mingliqiye.utils.json.JsonApi
import com.mingliqiye.utils.json.converters.DateTimeJsonConverter
import com.mingliqiye.utils.json.converters.JsonStringConverter
import com.mingliqiye.utils.json.converters.UUIDJsonStringConverter
import com.mingliqiye.utils.logger.mingLiLoggerFactory
import com.mingliqiye.utils.time.DateTime
import com.mingliqiye.utils.uuid.UUID
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.boot.autoconfigure.AutoConfiguration
import org.springframework.boot.autoconfigure.AutoConfigureAfter
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.boot.autoconfigure.gson.GsonBuilderCustomizer
import org.springframework.context.annotation.Bean
@ConditionalOnClass(Gson::class)
@AutoConfiguration
@AutoConfigureAfter(
name = ["org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration",
"com.mingliqiye.utils.springboot.autoconfigure.JacksonAutoConfiguration"]
)
open class GsonAutoConfiguration {
companion object {
private val log: Logger = LoggerFactory.getLogger("MingliUtils-GsonAutoConfiguration")
fun addTypeAdapter(gsonBuilder: GsonBuilder): GsonBuilder {
val dateTimeJsonConverter: JsonStringConverter<DateTime> = DateTimeJsonConverter()
val uuidJsonStringConverter: JsonStringConverter<UUID> = UUIDJsonStringConverter()
try {
return gsonBuilder
.registerTypeAdapter(
uuidJsonStringConverter.getTClass(),
dateTimeJsonConverter
.getGsonJsonStringConverterAdapter()
.getGsonTypeAdapter()
)
.registerTypeAdapter(
dateTimeJsonConverter.getTClass(),
dateTimeJsonConverter
.getGsonJsonStringConverterAdapter()
.getGsonTypeAdapter()
)
} finally {
log.info("MingliUtils GsonBuilder TypeAdapter add")
}
}
}
private val log: Logger = mingLiLoggerFactory.getLogger("MingliUtils-GsonAutoConfiguration")
@Bean
open fun mingliGsonCustomizer(): GsonBuilderCustomizer {
return GsonBuilderCustomizer { gsonBuilder: GsonBuilder -> addTypeAdapter(gsonBuilder) }
}
@Bean
@ConditionalOnMissingBean
open fun jsonApi(gson: Gson): JsonApi {
log.info("MingliUtils-JsonApiAutoConfiguration: GsonJsonApi bean is created.")
return GsonJsonApi(gson)
}
}