Các phiên bản mới sẽ bỏ qua việc quản lý sự phụ thuộc của Spring; bạn cần lấy bean đơn được cấu hình từ ngữ cảnh ứng dụng. Sử dụng điều này thay vì:
def service = ApplicationHolder.application.getMainContext().getBean("${property}Service")
Đó là giả định rằng 'sở hữu' là tên đậu một phần cho một dịch vụ, ví dụ: cho FooBarService, bất động sản sẽ phải 'foobar'. Nếu đó là 'foobar' sau đó bạn có thể sử dụng GrailsNameUtils.getPropertyName() để sửa chữa nó: lớp miền
import grails.util.GrailsNameUtils
String beanName = GrailsNameUtils.getPropertyName(property) + 'Service'
def service = ApplicationHolder.application.getMainContext().getBean(beanName)
Nguồn
2010-05-11 20:43:14
Yay, nó hoạt động. Tôi đã thử phương thức getBean, nhưng đã chuyển 'FooBar' sang nó :) – rukoche
Ở trên không làm việc cho tôi cho đến khi tôi thay thế '.getMainContext.' bằng' .getMainContext(). ' – sebnukem
Cảm ơn, tôi đã sửa nó sau khi thấy rằng chỉnh sửa đã bị từ chối không chính xác –