2012-05-01 49 views
7

我有一個關於從自定義配置文件加載屬性的問題。我試過 兩種不同的方法來加載我的oauth.properties文件,但我不能 得到工作,所以我希望有人在這裏可以幫助我。自定義配置文件 - 播放!框架2.0

我嘗試的第一個方法是將文件添加到conf目錄 正是如此引用它:

String oauthPropertiesFile = ClassLoader.getSystemResource("oauth.properties").getFile(); 

但是,剛剛返回NULL

第二種方法我嘗試是添加:

@include.oauthProperties = oauth.properties 

application.conf文件,然後引用它 我喜歡控制器:

String clientId = oauthProperties.clientId; 

然而,這並不編譯。

任何人都可以闡明我在這裏做錯了什麼嗎?

回答

12

我不確定conf是否是classpath的一部分。所以我會嘗試/conf/oauth.properties或將文件放入類路徑中。此外,您應該使用Play.application.classloader()而不是Classloader。

關於包括:我仍然認爲你需要調用Play.application().configuration().get("clientID");

的情況來分析,你可以用-Dconfig.trace=loads啓動應用程序,並與Play.application().configuration().root().render()分析的配置。

希望這給你足夠的提示,以便你可以解決你的問題。

16

什麼/conf與文件爲我工作:

import com.typesafe.config.ConfigFactory 

val myConfig = ConfigFactory.load("myfile.properties").getConfig("my.config.prefix") 
6

在一般情況下,獲取從「/ conf目錄」目錄中的任何文件,使用播放2.2是可以做到如下(注意, 「/ conf」在類路徑中,所以你不應該包含它)。

Play.application().classloader().getResource("any_file"); 
-2

如果你想使用scala.io.Source你也可以這樣做

Source.fromFile(Play.getFile("path-in-your-play-project"))