消息配置文件
1.公共配置文件
公共配置文件路径:
com.XXX.mdd.framework.core.message
public.properties
#处理成功
200=成功
#当期待的数据不存在时
1=失败(数据不存在,操作失败!)
#出现未知错误时
2=系统发生异常,请稍后再试
#请求地址错误
404=请求地址不存在,404错误
#服务器访问500异常
500=500服务器内部错误(Internal server error)
#--- 数据对象属性通用校验错误(Start) ----#
10000={0}不能为空
10010={0}长度只能在{1}-{2}之间
10020={0}长度必须大于{1}
10030={0}长度必须小于{1}
10040={0}不是正确的身份证号
10050={0}不是正确的电子邮箱
10060={0}不是正确的移动电话
10070={0}的类型不正确
10080={0}不是正确的日期格式
10090={0}值域错误
10100=排序配置的alias字段的json格式错误:{0}
#--- 数据对象属性通用校验错误(End) ----#
#--- java常见异常(Start) ----#
10101=数据库操作失败!
10102=数组下标越界!
10103=数学运算异常!
10104=空指针异常!
10105=找不到类异常
10106=IO异常
10107=方法的参数错误
10108=类型强制转换错误!
10109=违背安全原则异常!
10110=操作数据库异常!
10111=方法未找到异常!
10112=Java虚拟机发生了内部错误!
#--- java常见异常(End) ----#
#--- 框架定义的通用错误编码(Start) ---#
10201=读取配置文件{0}失败
10120=找不到方法异常
10130=方法内部异常
10140=系统尚未被授权访问该服务,请与服务提供方联系!
#--- 框架定义的通用错误编码(End) ---#
#--- 没有机构数据访问权限 ---#
20010=没有数据访问权限
#interfaceApi校验header头
40010=交易流水不能为空
40020=系统编码不能为空
40030=模块编码不能为空
40040=ip不能为空
#加解密
60010=Des解密失败
60020=Md5加密失败
#----- email工具相关异常 -----#
90010=发送邮件异常
90050=主机名不能为空
90051=端口号不能为空
90052=用户名不能为空
90053=密码不能为空
#人脸识别
70010=图片不能为空
70020=业务编码不能为空
70030=密钥不能为空
70040=注册类型不能为空
70050=图片大小不能大于200K
70060=无法识别的编码格式
70070=服务器地址不能为空
70080=远程调用人脸识别注册服务失败
70090=远程调用人脸1:1识别服务失败
70100=远程调用人脸1:N识别服务失败
70110=远程调用人脸识别删除服务失败
70120=远程调用人脸识别查询服务失败
#图像识别
80010=图片不能为空
80020=密钥不能为空
80030=图片类型不能为空
80040=业务编码不能为空
80050=图片大小不能大于200K
80060=服务器地址不能为空
80070=远程调用OCR识别服务失败
#rabbitMq工具类提示
50010=rmq主机地址不能为空
50020=rmq用户名不能为空
50030=rmq用户密码不能为空
50040=rmq虚拟机名称不能为空
50050=rmq主机端口不在1-65535之间
50060=获取rmq工厂失败
50070=获取rmq模板失败
50080=发送rmq消息失败
50090=rmq监听启动异常
50100=监听未找到【{0}】中的【{1}】方法
50110=找不到名称为【{0}】的bean
#----- solr工具相关异常 -----#
30010=solr服务器异常
30020=solr流异常
30030=solr未知异常
30040=solr远程运行异常
#----- 通用业务异常相关 -----#
20001=新增时校验重复
20002=更新时校验重复
l 存放跨领域的公共消息配置信息;使用注释隔开,分块书写;目前按照第三位编码为类型来区分。
l 当前如有增加公共配置需求,需要通知管理员来进行统一审核后维护。
2.项目私有配置文件
私有配置文件路径:每个领域的resources下
private.properties
#--- 客户信息资源消息(Start) ----#
CUST10060=客户的人员编码不能为空
CUST10070=客户的的证件已被使用
CUST10080=机构下无此客户
CUST10090=客户的电子邮箱格式错误
CUST10100=客户的身份证格式错误
#--- 客户信息资源消息(End) ----#
#--- 用户信息资源消息(Start) ----#
USER10010=用户名不能为空
USER10090=此用户不是员工用户
USER10100=无此机构用户
USER10110=无此类用户
USER10121=用户登录信息不存在或者已失效
USER10120=用户不存在
#--- 用户信息资源消息(End) ----#
存放领域内私有的消息配置信息;使用注释隔开,分块书写;
常见问题说明:公共配置里面已经存在的,优先使用公共配置里面信息,公共配置支持扩展。
#--- 数据对象属性通用校验错误(Start) ----#
10000={0}不能为空
10010={0}长度只能在{1}-{2}之间
10020={0}长度必须大于{1}
10030={0}长度必须小于{1}
10040={0}不是正确的身份证号
10050={0}不是正确的电子邮箱
10060={0}不是正确的移动电话
10070={0}的类型不正确
#--- 数据对象属性通用校验错误(End) ----#
3.加载配置文件
每次调用初始化配置文件信息。
package com.XXX.mdd.framework.core.message;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MessageReader {
private static MessageReader messageReader = new MessageReader();
private static final String PRIVATE = "/private.properties";
private static final String PUBLIC = "public.properties";
private Properties properties;
private static final Logger logger = LoggerFactory.getLogger(MessageReader.class);
/**
* 单例构造器,初始化时读取private.properties和public.properties文件里的消息并缓存
*/
private MessageReader(){
this.properties = new Properties();
InputStream privatePro = null;
try {
privatePro = this.getClass().getResourceAsStream(PRIVATE);
if(privatePro!=null){
properties.load(new InputStreamReader(privatePro, "UTF-8"));
}
} catch (Exception e) {
logger.warn("私有提示消息文件加载失败",e);
}finally {
if(privatePro!=null){
try {
privatePro.close();
} catch (Exception e) {
logger.warn("私有提示消息文件加载失败",e);
}
}
}
InputStream publicPro = null;
try {
publicPro = this.getClass().getResourceAsStream(PUBLIC);
if(publicPro!=null){
properties.load(new InputStreamReader(publicPro, "UTF-8"));
}
} catch (Exception e) {
logger.warn("公共提示消息文件加载失败",e);
}finally {
if(publicPro!=null){
try {
publicPro.close();
} catch (Exception e) {
logger.warn("公共提示消息文件加载失败",e);
}
}
}
}
public static MessageReader getMessageReader(){
return messageReader;
}
public String getPropertie(String name){
Object object = this.properties.get(name);
if(object!=null){
return object.toString();
}
return null;
}
public String getPropertie(String name,String...params){
String propertie = getPropertie(name);
if(propertie!=null){
String newPropertie=null;
if(params!=null){
for (int i = 0 ; i < params.length; i++) {
newPropertie=propertie.replace("{"+i+"}", params[i]);
}
}
return newPropertie;
}
return null;
}
public void loadProperties(InputStream in){
try {
properties.load(new InputStreamReader(in, "UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
}