Java中读取配置文件中的内容,并将其赋值给静态变量的方法

导读:本篇文章讲解 Java中读取配置文件中的内容,并将其赋值给静态变量的方法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

应用场景

项目开发中某个功能需要抽取成方法写成一个工具类,提供给别人使用。写过工具类的人都知道,工具类中的方法一般都是静态方法,可以直接使用类名点方法名调用,

使用很方便,比如判断某个对象是否为null的方式Objects.equals().由于我写的这个工具类中需要读取配置文件中的内容,可是常规方式注入成员变量时都不是静态的,不

能直接调用,比如这种方式:

@Data
@Component
public class GBaseApiConfig {

  @Value(“${gbase.api.prefix}”)
  private String gbaseApi;

}

工具类中的静态方法直接调用这种方式注入的成员变量会出现空指针异常,因为Java中的语法规定静态的方法只能调用静态的方法或者是成员变量,否则会报错如下:

Java中读取配置文件中的内容,并将其赋值给静态变量的方法

 

 

 想在静态方法中使用其他非静态的成员变量或者是方法只能通过创建对象的方式来调用,可是工具类中不可能这么干,不然就失去工具类的意义了。于是想到

如下方法

方法一

通过静态代码块来读取、加载配置文件中的内容,代码如下

Java中读取配置文件中的内容,并将其赋值给静态变量的方法

 先定义一个静态的成员变量,然后在静态代码块中读取需要的配置文件信息,在给静态变量赋值。这种方式亲自测试完全可用。

方法二

可是过了一段时间后,项目经理让我们修改代码,原因是希望项目中的代码风格统一,全部都使用@Value注解注入的方式。

很快一个同事就找到一个可行的办法,代码如下

Java中读取配置文件中的内容,并将其赋值给静态变量的方法

 

 

 实现spring中的InitializingBean接口,然后重写afterPropertiesSet方法即可。实现方式为先将配置文件中的值注入到一个成员变量中,然后通过方法

afterPropertiesSet实现工具类的初始化,这样就可以将配置文件中的信息注入到工具类中。测试可用。

Java中读取配置文件中的内容,并将其赋值给静态变量的方法

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/17410.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!