有时候有些常量不想修改业务代码,可以灵活的放在.yml或者properties文件中。比较常用的方法是:先key一个类,提供get/setter方法@Data@ConfigurationProperties(prefix="ums.params")//必须加两个注解,提供spring容器扫描@ComponentpublicclassUmsConstant{/***平台下单接口*/privateStringchinaUmsServerApi;/***支付或退款成功回调*/privateStringnotyApi;/***平台商户ID*/privateStringmid;/***平台终端ID*/privateStringtid;/***消息来源*/privateStringmsgSrc;/***来源编号*/privateStringmsgSrcId;/***签名类型*/privateStringsignType;/***应用模式*/privateStringappDefault;/***c扫描b模式*/privateStringqrDefault;/***SHA256key*/privateStringpriKey;}对应的yml配置文件:#参数配置ums:params:#平台下单接口chinaUmsServerApi:"http://route-server/api/"#支付或退款成功回调notyApi:"http://payCallback/"#平台商户号mid:"8*****39AAAW"#平台终端号tid:"A4*****LB"#SourcemsgSrc:"WWW.****.COM"#SourcenumbermsgSrcId:"***B"#SignaturetypesignType:"***256"#appModeappDefault:"APP****AULT"#cscanbmodeqrDefault:"QRPA***FAULT"#SHA256keypriKey:"6MB74yfz6y3rnt*********wJrr3rS"1.将静态方法赋值给Staticmethod,优点是全局唯一,通过类名.method获取@Component//必须加注解publicclassUmsParamsUtil{privatestaticLoggerlog=LoggerFactory.getLogger(UmsParamsUtil.class);@AutowiredpublicUmsConstantumsConstant;//注入对象属性//定义静态参数publicstaticUmsParamsUtilumsParamsTempleUtil;/***初始化,静态代码块类加载正在加载,赋值给静态参数*/@PostConstructpublicvoidinit(){//对象属性已经有值umsParamsTempleUtil=this;//赋值给当前静态参数umsParamsTempleUtil.umsConstant=this.umsConstant;}/***参数静态方法获取值*@return*/publicstaticUmsConstantumsConstant(){if(umsParamsTempleUtil.umsConstant==null){log.error("*****isempty");}//给对象赋值returnumsParamsTempleUtil.umsConstant;}}使用方法:UmsParamsUtil.umsConstant.getSignType...2.通过静态方法加载时直接赋值@Data@ConfigurationProperties(prefix="ums.params")//两个注解必须加,用于扫描到spring容器@ComponentpublicclassUmsConstant{/***平台下单接口*/privateStringchinaUmsServe应用程序接口;/***支付成功或退款成功的回调*/privateStringnotyApi;//初始化@PostConstructpublicvoidinit(){UmsStatic.setParams(this);}}publicclassUmsStatic(){publicstaticStringAPI_N;公共静态字符串API_NN;publicstaticsetParams(UmsConstantumsconstant){UmsStatic.API_N=umsconstant.getXXX;UmsStatic.API_NN=umscontant.getXXXX;}}3。分配@ConfigurationpublicclassWebConfigurationextendsWebAutoConfiguration{@Bean@Configuration"ums.params")publicUmsConstantumsConstant(){returnnewUmsConstant();}4.通过getbean的方式signProperties=SpringContextHolder.getBean(SignProperties.class);5.通过prorotiobject方式...这种方式需要指定文件,不方便
