migration-guide.md
3.8 KB
SMF Core 迁移指南
本文档提供了SMF Core框架版本升级的迁移指南,帮助开发者顺利完成从旧版本到新版本的过渡。
从0.1.0版本迁移到1.0.0版本
1. 依赖升级
Spring Boot版本升级
确保在pom.xml中更新Spring Boot版本:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.x</version> <!-- 或更新版本 -->
<relativePath/>
</parent>
2. BaseMapper接口使用变更
方法命名调整
在1.0.0版本中,BaseMapper接口的方法名称更加规范化,请确保您的实现类正确实现了新的方法名称:
0.1.0版本(旧):
public interface UserMapper {
UserEntity dtoToEntity(UserDto dto);
UserDto entityToDto(UserEntity entity);
List<UserEntity> dtosToEntities(List<UserDto> dtos);
List<UserDto> entitiesToDtos(List<UserEntity> entities);
}
1.0.0版本(新):
public interface UserMapper extends BaseMapper<UserDto, UserEntity> {
// 方法名称变为toEntity、toDto等
// 实现BaseMapper接口中的所有方法
}
3. null参数处理
1.0.0版本修复了BaseMapper接口在处理null参数时的类型歧义问题。在调用接口方法传递null值时,建议添加明确的类型转换以避免潜在的问题:
// 推荐的方式
UserEntity entity = mapper.toEntity((UserDto) null);
UserDto dto = mapper.toDto((UserEntity) null);
4. 配置文件结构变更
配置文件smfcore.json的结构在1.0.0版本中更加规范化:
1.0.0版本配置文件示例:
{
"database": {
"mongo": {
"uri": "mongodb://username:password@host:port/database",
"connections": 20,
"maxWaitTime": 15000
}
},
"service": {
"port": 8080,
"contextPath": "/api"
},
"logging": {
"level": "INFO",
"file": "logs/smf-core.log"
},
"i18n": {
"defaultLocale": "zh_CN",
"supportedLocales": ["zh_CN", "en_US"]
}
}
请根据上述格式调整您的配置文件。
5. 包结构变更
1.0.0版本调整了部分包结构,确保您的导入语句正确更新为新的包路径:
0.1.0版本(旧):
import com.smf.core.dao.BaseDao;
import com.smf.core.mapper.ObjectMapper;
1.0.0版本(新):
import com.smf.core.dao.AbstractBaseDao;
import com.smf.core.mapper.BaseMapper;
6. 异常处理方式变更
1.0.0版本实现了统一的异常处理机制,请使用新的异常类型:
// 使用新的异常类
throw new ServiceException("业务处理失败", ErrorCode.BUSINESS_ERROR);
7. 测试代码调整
BaseMapperTest类中修复了null参数处理,在您自己的测试类中也应做相应调整:
@Test
public void testToEntityWithNull() {
assertNull(mapper.toEntity((TestDto) null));
}
迁移建议
增量迁移:建议分模块、分批次进行迁移,而不是一次性迁移所有内容
全面测试:每次迁移后进行全面的单元测试、集成测试和回归测试
备份:在开始迁移前,确保对项目代码和配置文件进行完整备份
查阅API文档:详细了解新版本中的API变更,避免使用已废弃的方法
迁移常见问题
编译错误:找不到方法或类
解决方法:检查包路径和方法名称是否已按新版本要求更新,确认导入语句正确。
运行时错误:类型转换异常
解决方法:特别注意null参数的处理,添加明确的类型转换。
配置无法加载
解决方法:检查配置文件结构是否符合新版本要求,确保所有必要的配置项都已正确设置。
如果在迁移过程中遇到其他问题,请参考项目文档或联系技术支持团队获取进一步帮助。
最后更新时间:2024年