Easy Trans Spring Boot Starter 使用文档
1. 简介
easy-trans-spring-boot-starter
是一个基于 Spring Boot 的库,用于简化数据翻译和转换操作。它可以帮助你将数据库中的枚举值、状态码等转换为用户友好的文本,或者将一种数据格式转换为另一种格式。
2. 功能特点
- 数据翻译:将枚举值、状态码等转换为用户友好的文本。
- 数据转换:将一种数据格式转换为另一种格式。
- 多语言支持:支持多语言环境下的数据翻译。
- 注解驱动:通过注解配置数据翻译规则,简化代码。
- 与 Spring Boot 集成:作为 Spring Boot Starter,轻松集成到项目中。
3. 快速开始
3.1 添加依赖
在你的 Spring Boot 项目中,添加 easy-trans-spring-boot-starter
依赖。
Maven:
<dependency>
<groupId>com.github.easy-trans</groupId>
<artifactId>easy-trans-spring-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
Gradle:
implementation 'com.github.easy-trans:easy-trans-spring-boot-starter:最新版本'
3.2 配置翻译规则
在需要翻译的字段上添加 @Trans
注解。
示例:
@Data
public class User {
private String name;
@Trans(type = "status", key = "userStatus")
private Integer status;
}
type
:翻译类型,例如status
。key
:翻译的键,例如userStatus
。
3.3 实现翻译逻辑
实现翻译逻辑,例如从数据库或配置文件中加载翻译数据。
示例:
@Service
public class UserService {
public User getUser() {
User user = new User();
user.setName("John");
user.setStatus(1); // 1 表示 "已激活"
return user;
}
}
3.4 调用翻译功能
在需要的地方调用翻译功能,例如在查询数据库后自动翻译数据。
示例:
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user")
public User getUser() {
return userService.getUser();
}
}
4. 多语言支持
4.1 配置多语言
在 application.yml
中配置多语言支持。
示例:
easy-trans:
i18n:
enabled: true
default-locale: zh_CN
4.2 多语言翻译文件
在 resources
目录下创建多语言翻译文件。
示例:
messages_zh_CN.properties
:userStatus.1=已激活
userStatus.2=已禁用messages_en_US.properties
:userStatus.1=Activated
userStatus.2=Disabled
5. 高级用法
5.1 自定义翻译器
如果需要自定义翻译逻辑,可以实现 TransService
接口。
示例:
@Service
public class CustomTransService implements TransService {
@Override
public String trans(String type, String key, Object value) {
if ("status".equals(type)) {
if (1 == (Integer) value) {
return "已激活";
} else if (2 == (Integer) value) {
return "已禁用";
}
}
return null;
}
}
5.2 支持复杂对象
easy-trans-spring-boot-starter
支持复杂对象的翻译。
示例:
@Data
public class Order {
private String orderId;
@Trans(type = "status", key = "orderStatus")
private Integer status;
}
@Data
public class User {
private String name;
@Trans(type = "status", key = "userStatus")
private Integer status;
private List<Order> orders;
}
6. 常见问题
6.1 翻译未生效
- 确保
@Trans
注解的type
和key
配置正确。 - 确保翻译逻辑已正确实现。
6.2 多语言未生效
- 确保
application.yml
中的多语言配置正确。 - 确保多语言翻译文件已正确放置。
7. 示例项目
你可以在 GitHub 上找到完整的示例项目:Easy Trans Example
easy-trans-spring-boot-starter
是一个强大的数据翻译和转换工具,可以帮助你减少重复代码,提高开发效率。通过本文档,你应该能够快速上手并集成到你的 Spring Boot 项目中。如果遇到问题,可以参考示例项目或查看官方文档。