2011-08-22 4 views
4

간단한 질문이 있지만 Google 및 stackoverflow 결과가 전혀 만족스럽지 않습니다.내 Grails 앱에서 액세스 할 수있는 상수 클래스를 어디에 둘까요?

어떻게 같은 상수 클래스를 정의 할 수 있습니다

Constants.SYSTEM_USER_ID

내가 grails-app/utils에서 그것을 시도

src/java으로하지만, 예를 들어 내가 액세스 할 수 사방를 호출 할 수 있습니다

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

Service 클래스 내부.

+4

FWIW에서 "상수 클래스"는 대개 반 패턴입니다. 클래스에 상수를 정의해야한다. (아마도 'User' 클래스인가?), 아니면 설정 속성으로 처리해야한다. (아래의 Don의 대답 참조). –

답변

6

Constants 클래스를 패키지에 넣어야합니다. 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'입니다. –

관련 문제