java中获取配置文件参数的方法

【java中获取配置文件参数的方法】有时候一些常量不想修改业务代码,可以灵活的放在.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对象方式... 这种方式需要指定文件,不是很方便。

    推荐阅读