2014-06-12 5 views
0

Grails 2.4 서비스 섹션에 서비스가 생성되었습니다. 컨트롤러에서는 의존성 삽입을 사용하고 있으며 자동으로 초기화됩니다. 같은 서비스를 사용하고 싶습니다 src/groovy 폴더에 정의 된 사용자 정의 도우미 클래스에서 ClassifiedService 말하십시오. 나는 다음과 같은 객체는 항상 null의 경우, Grails에의 의존성 주입을 사용하려고하면도우미 클래스에서 Grails 서비스를 사용하는 방법

ClassifiedService classifiedService = new ClassifiedService() 

:

질문 1 : 나는 바로 아래와 같은 서비스를 호출해야합니다.

def classifiedService 

질문 2 : 서비스 방법에 대한 인터페이스를 생성하고 사용하고 실제 클래스를 초기화하는 것이 좋습니다?

답변

2

당신은 conf/spring/resources.groovy 당신에게 헬퍼 클래스를 추가 할 수 있습니다

import foo.bar.MyHelperClass 

beans = { 
    myHelperClass(MyHelperClass) 
} 

이 클래스 MyHelperClassmyHelperClass라는 이름의 빈을 생성한다. 이 빈의 모든 필드는 자동으로 실행됩니다 (종속성 주입은 자동으로 발생합니다).

이 후에 당신은 또한 컨트롤러 및 서비스에 도우미 클래스를 삽입 할 수

def classifiedService 

사용 myHelperClass에 서비스 종속성을 추가 할 수 있습니다. 당신이 헬퍼 클래스 외부 컨트롤러에 액세스해야하는 경우 /서비스 당신은

def helper = grailsApplication.mainContext.getBean('myHelperClass') 

가`빈을 할 필요가 없습니다 자세한 내용

+1

에 대한 Grails는 문서의 spring 섹션을 참조하십시오 사용하여 인스턴스를 얻을 수 있습니다. autowire = 'byName '' 비즈니스. 그것은 기본적으로 발생합니다. 'myHelperClass (MyHelperClass)'만하면됩니다. 또한 "클래스"라는 단어를 콩 이름의 일부로 포함시키는 것이 특이한 일이지만 작동 할 것입니다. –