加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 播放2.5.3:使用依赖注入来获取配置值

发布时间:2020-12-15 00:25:38 所属栏目:Java 来源:网络整理
导读:我试图将一个Playframework应用程序从2.4迁移到2.5.3,并且我有问题从application.conf文件获取值: 之前要从application.conf获取一个值我所做的是: Play.application().configuration().getString("label") 现在,由于Play.application()已被弃用,我应该使
我试图将一个Playframework应用程序从2.4迁移到2.5.3,并且我有问题从application.conf文件获取值:

之前要从application.conf获取一个值我所做的是:

Play.application().configuration().getString("label")

现在,由于Play.application()已被弃用,我应该使用依赖注入.根据framework documentation我使用以下说明:

>定义import:import javax.inject.*;导入play.Configuration;
>定义类属性:@Inject private配置配置;
>使用我的类上的配置类属性

当我按照我的控制器Application.java上的这些说明它是正常工作:

但是当我尝试从我的项目的另一个类对象使用它时,依赖注入不起作用,我总是得到一个NullPointerException.

有人可以给我一个关于如何使用依赖注入从application.conf获取值的示例?

我的java代码的一部分我试图用DI:

import javax.inject.Inject;
import play.Configuration;
import play.Logger;

public class Zipper {

    @Inject private  Configuration configuration;

    public void unZip(String zipFilePath) {
        Logger.debug("Display : zipFilePath"+zipFilePath);
        Logger.debug("before call parameter from application.conf");
        Logger.debug("configuration.getString = "+configuration.getString("Unzipedfile.path"));
        Logger.debug("aftercall parameter from application.conf");
    }
}

并且我总是得到一个空指针异常,在与configure.getString(“Unzipedfile.path”)的行上

解决方法

我认为你可以这样初始化配置:
private  Configuration configuration = Play.current().injector().instanceOf(Configuration .class);

所以你的拉链将是:

import javax.inject.Inject;
import play.Configuration;
import play.Logger;

public class Zipper {

    private  Configuration configuration = Play.current().injector().instanceOf(Configuration .class);

    public void unZip(String zipFilePath) {
        Logger.debug("Display : zipFilePath"+zipFilePath);
        Logger.debug("before call parameter from application.conf");
        Logger.debug("configuration.getString = "+configuration.getString("Unzipedfile.path"));
        Logger.debug("aftercall parameter from application.conf");
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读