翻译拦截模块(hzs-common-aop -- TransactionAspectAdvice.java) 如果业务操作时,返回内容需要统一翻译,则在pom文件中引入该模块。 翻译拦截器会统一拦截 com.hzs 包下 controller 下的以 Controller 结尾类。 翻译拦截器会根据请求头中指定的翻译语言,与当前登录用户所属国家的默认语言进行比较,如果不一致则进行处理。 返回实体中,如果需要进行统一翻译的需要在对应的字段添加注解 @Transaction。 @Transaction注解中有4个参数: 1. isForce -- 是否强制国际化处理: 强制处理会直接按照选择显示语言进行处理 2. isCache -- 是否来源于缓存: 如果是,则直接从redis中取;如果否,则直接从数据库中查询 3. transactionKey -- 翻译规则前缀: 当来源于缓存为true时,缓存对应的key值前缀,来源于 EnumsPrefixConstants 中内容 4. isValue -- 是否当前字段取值: 当来源于缓存为true时,并且使用当前字段取值true,那么最终用于获取缓存中的翻译key值,由 翻译规则前缀 + 当前字段实际值 组成 5. valueField -- 默认翻译数据字段: 当来源于缓存为true时,并且使用当前字段取值为false,那么最终用于获取缓存中的翻译key值,由 翻译规则前缀 + 该属性指定值 如果枚举值进行返回列表时,需要将枚举内容转化成 EnumEntity 实体,在实体中因无法直接指定各枚举对应的翻译前缀KEY,所以需要在实体对象的 transactionKey 字段,指定翻译前缀KEY 注: 数值类型的状态位返回时,需要在实体中定义以 【字段名 + Val】 的字段,用于回填状态位翻译之后的字符内容。