2011-08-22 63 views
4

我有一个简单的问题,但谷歌和stackoverflow结果并没有让我满意。在哪里可以放置一个可以在我的Grails应用程序中访问的Constants类?

我如何定义一个常量类,如:

public class Constants { 
    public static final int SYSTEM_USER_ID = 1; 
} 

可以与Constants.SYSTEM_USER_ID

我试图在grails-app/utilssrc/java但是例如我无法访问无处不被称为在一个Service类中。

+4

FWIW,“常量类”通常是反模式。你应该在一个他们相关的类上定义常量(在你的情况下,也许是User类),或者把它们当作配置属性(参见下面的Don的回答)。 –

回答

6

您需要将您的常量类放入一个包中。如果Grails不在包中,它就无法找到该类。

16

你可能会考虑把这些常数代入Config.groovy而不是一个类。这种方法的一个优点是您可以为这些常量指定每个环境的值。您可以使用隐式的grailsApplication变量或ConfigurationHolder类读取这些值。

+0

我希望你[开玩笑](http://meta.stackexchange.com/questions/35989/how-can-you-detect-if-users-have-created-sock-puppet-accounts)! :-) – OverZealous

+2

'ConfigurationHolder' [已弃用](http://grails.github.io/grails-doc/2.0.1/api/org/codehaus/groovy/grails/commons/ConfigurationHolder.html)以及Grails 3.0配置文件是'conf/application.yml'。 –

相关问题