클로저를 포함하는 빈 정의를 가질 수 있습니까? 때로는 거의 동일한 클래스 인스턴스를 원했지만 약간의 작은 동작으로 차별화되었습니다. 데이터 이외에 다른 bean 정의를 전달하는 것만으로는 충분하지 않습니다.grails bean 정의를 사용하여 스프링 빈에 클로저 전달하기
예 원하는 빈 정의 :
beans {
myCustomWidget1(Widget) {
myClosure = { w -> return w.doThis() }
}
myCustomWidget2(Widget) {
myClosure = { w -> return w.doThat() }
}
}
예 클래스 :
class Widget {
Closure myClosure
...
}
문제는 Anonymous (Inner) Beans 이미 폐쇄 구문을 사용하고 이러한 익명 콩이 응용 프로그램 시작시 평가이다, 클래스의 Closure 필드를 설정하는 대신 이것은 분명히 런타임에 예외를 발생시킵니다.
이전에는 bean으로 삽입 한 작은 도우미 클래스를 만들었고 동작 변경 사항은 같은 이름의 메서드로 작성되었습니다. 나는 이것이 올바른 접근이라고 생각하지만보다 간결한 '그루비 (groovy)'방법을 기대했다.
우리는 Grails 2.4.2를 사용하고 있습니다. 그러나 grails/groovy 버전에 상관없이 BeanBuilder가 익명의 빈으로 내 원하는 클로저를 처리 할 것이라고 저는 믿습니다. 그것을 할 수
, 감사합니다! – tylerwal