Java – play 2.5 3: Use dependency injection to get configuration values
I tried to migrate a play framework application from 2.4 to 2.5 3, and I have questions from application Conf file get value:
From application Conf gets a value. What I do is:
Play.application().configuration().getString("label")
Now, due to play Application () has been deprecated. I should use dependency injection According to the framework documentation, I use the following instructions:
>Define import: import javax inject.*; Import play Configuration; > Define class attributes: @ inject private configuration; > Use configuration class properties on my class
When I follow my controller application These instructions on Java show that it works normally:
But when I try to use it from another class object in my project, dependency injection doesn't work. I always get a NullPointerException
Someone can give me a on how to use dependency injection from application Conf get value example?
Part of my java code, I tried to use 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");
}
}
And I always get a null pointer exception with configure On the line of getString ("unzipedfile. Path")
Solution
I think you can initialize the configuration as follows:
private Configuration configuration = Play.current().injector().instanceOf(Configuration .class);
So your zipper will be:
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");
}
}
