2
我有一個類,我移動到grails-app/services目錄下,以注入springSecurityService。這個類是spring userDetailsService類的實現(這是適當的術語?)。這是我在resources.groovy聲明:依賴注入不能在Grails服務中工作
userDetailsService(com.company.product.PracticeUserDetailsService) {
grailsApplication = ref('grailsApplication')
}
此類擴展在空對象
我試圖dependencyInjection結果。
class PracticeUserDetailsService extends GormUserDetailsService{
def springSecurityService
UserDetails loadUserByUsername(String username, boolean loadRoles) throws UsernameNotFoundException {
// impl omitted
}
}
如果我創建一些測試控制器或Grails的一些服務和注入springSecurityService
,它工作正常。所以,這個特定的課程可能並沒有放在Grails生態系統中。我檢查了this嘗試如下手動注入它:
beans = {
springSecurityTEST(grails.plugins.springsecurity.SpringSecurityService) {}
}
非常感謝。我現在明白了;您將springSecurityService聲明爲userDetailsService bean的引用bean。但是,你能解釋爲什麼它不能將這個類放在grails-app/services下嗎? – jcd
@jcd Spring bean自動爲服務創建,所以通過將類放在'grails-app/services'中,並在'resources.groovy'中爲它定義一個bean,你就定義了兩次相同的Spring bean,導致麻煩 –