通过配置文件绑定属性值(@ConfigurationProperties 和 @Value)
最近在做微信支付,做的过程需要将微信appId、secret、商户号等等很多参数通过实体类注入到配置类中,有两种方式,这里都写一下。一共有两种,一种是写properties配置文件,一种是通过yaml文件绑定,最后对比一下@ConfigurationProperties和@Value的区别。
1. properties配置文件绑定
新建一个微信支付参数实体类 WCPConfigParams
@Data
public class WCPConfigParams {
// 公众号id
private String appId;
// app密钥
private String appSecret;
// 商户号
private String muchId;
// api密钥
private String apiKey;
// 公众号注册域名
private String registerDomain;
// jsapi支付目录
private String jsapiPaymentAuthDir;
// js安全域名
private String jsDomain;
// 网页授权域名
private String webAuthDomain;
// 证书目录
private String apiclientCert;
// 押金支付回调地址
private String notifyUrl;
// 取包支付回调地址
private String takeNotifyUrl;
// 退款回调地址
private String notifyUrlRefund;
}
在resources下建立wcp-config.properties
配置文件
wcp.APP_ID=
wcp.APPSECRET=
wcp.MCH_ID=
wcp.API_KEY=
wcp.REGISTER_DOMAIN=
wcp.JSAPI_PAYMENT_AUTH_DIR=
wcp.JS_DOMAIN=
wcp.WEB_AUTH_DOMAIN=
wcp.APICLIENT_CERT=
wcp.NOTIFY_URL=
wcp.TAKE_NOTIFY_URL=
wcp.NOTIFY_URL_REFUND=
接下来创建属性绑定配置类WCPConfig
@Configuration
@PropertySource("classpath:wcp-config.properties"