有时候一些常量不想批改业务代码,能够灵便的放在.yml或者properties文件中.
比拟罕用的办法有:

首先键一个类提供get/setter办法

@Data@ConfigurationProperties(prefix = "ums.params")//两个注解必须加,用来提供给spring容器扫描到@Componentpublic 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容器扫描到@Componentpublic 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、通过配置类赋值

@Configurationpublic class WebConfiguration extends WebAutoConfiguration {    @Bean    @ConfigurationProperties(prefix = "ums.params")    public UmsConstant umsConstant() {        return new UmsConstant();    }

4、通过getbean形式

signProperties = SpringContextHolder.getBean(SignProperties.class);

5、通过proroti对象形式...

这种形式须要指定文件,不是很不便。