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

前端之家收集整理的这篇文章主要介绍了java – 播放2.5.3:使用依赖注入来获取配置值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将一个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");
    }
}

猜你在找的Java相关文章