有时候一些常量不想修改业务代码,可以灵活的放在.yml或者properties文件中.
比较常用的方法有:
首先键一个类提供get/setter方法
@Data
@ConfigurationProperties(prefix = "ums.params")//两个注解必须加,用来提供给spring容器扫描到
@Component
public class UmsConstant {
/**
* 平台下单接口
*/
private String chinaUmsServerApi;
/**
* 支付或退款成功回调
*/
private String notyApi;
/**
* 平台商户号
*/
private String mid;
/**
* 平台终端号
*/
private String tid;
/**
* 消息来源
*/
private String msgSrc;
/**
* 来源编号
*/
private String msgSrcId;
/**
* 签名类型
*/
private String signType;
/**
* app模式
*/
private String appDefault;
/**
* c扫b模式
*/
private String qrDefault;
/**
* SHA256密钥
*/
private String priKey;
}
对应yml配置文件:
#参数配置
ums:
params:
#平台下单接口
chinaUmsServerApi: "http://route-server/api/"
#支付或退款成功回调
notyApi: "http://payCallback/"
#平台商户号
mid: "8*****39AAAW"
#平台终端号
tid: "A4*****LB"
#消息来源
msgSrc: "WWW.****.COM"
#来源编号
msgSrcId: "***B"
#签名类型
signType: "***256"
#app模式
appDefault: "APP****AULT"
#c扫b模式
qrDefault: "QRPA***FAULT"
#SHA256密钥
priKey: "6MB74yfz6y3rnt********wJrr3rS"
1、静态方法方式赋值给静态方法,优点是全局唯一,通过类名.方法获取。
@Component//注解必须加
public class UmsParamsUtil {
private static Logger log = LoggerFactory.getLogger(UmsParamsUtil.class);
@Autowired
public UmsConstant umsConstant;//注入对象属性
//定义静态参数
public static UmsParamsUtil umsParamsTempleUtil;
/**
* 初始化,静态代码块类加载是加载,赋值给静态参数
*/
@PostConstruct
public void init(){
//对象属性已经有值
umsParamsTempleUtil = this;
//赋值给当前静态参数
umsParamsTempleUtil.umsConstant = this.umsConstant;
}
/**
* 参数静态方法获取值
* @return
*/
public static UmsConstant umsConstant(){
if(umsParamsTempleUtil.umsConstant == null){
log.error("*****为空");
}
//给对象赋值
return umsParamsTempleUtil.umsConstant;
}
}
使用方式:UmsParamsUtil.umsConstant.getSignType...
2、通过静态方法类加载时直接赋值
@Data
@ConfigurationProperties(prefix = "ums.params")//两个注解必须加,用来提供给spring容器扫描到
@Component
public class UmsConstant {
/**
* 平台下单接口
*/
private String chinaUmsServerApi;
/**
* 支付或退款成功回调
*/
private String notyApi;
//初始化
@PostConstruct
public void init(){
UmsStatic.setParams(this);
}
}
public class UmsStatic(){
public static String API_N;
public static String API_NN;
public static setParams(UmsConstant umsconstant){
UmsStatic.API_N = umsconstant.getXXX;
UmsStatic.API_NN = umscontant.getXXXX;
}
}
3、通过配置类赋值
@Configuration
public class WebConfiguration extends WebAutoConfiguration {
@Bean
@ConfigurationProperties(prefix = "ums.params")
public UmsConstant umsConstant() {
return new UmsConstant();
}
4、通过getbean方式
signProperties = SpringContextHolder.getBean(SignProperties.class);
5、通过proroti对象方式...
这种方式需要指定文件,不是很方便。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。