2011-02-15 88 views
0

我開發了Spring,Wicket,Hibernate和Spring Security的應用程序。一切正常,但現在我添加了自己的UserDetailsS​​ervice實現從數據庫中獲取用戶。我在applicationContext-security.xml文件中配置了它,並使用Spring將依賴項添加到了我的UserDAO。但是,由於我的userDAO爲空,我得到了空指針異常。爲什麼這個依賴不起作用?我以同樣的方式來完成這項工作,例如,WebPages子類和一切正常。UserDetailsS​​ervice自身實現的Spring Security空依賴bean自己實現

@Service 
public class ComicsUserDetailsService implements 
     org.springframework.security.core.userdetails.UserDetailsService { 

    @SpringBean 
    private UserDAO userDAO; 

    public ComicsUserDetailsService() { 
     System.out.println("$$$ UserDetailsService created"); 
    } 

    @Override 
    public UserDetails loadUserByUsername(String username) 
      throws UsernameNotFoundException, DataAccessException { 

     (bla bla) 
    } 
} 

UserDAO的相當簡單的類

@Service 
public class UserDAO { 

    public UserDAO() { 
     System.out.println("$$$ UserDAO created"); 
    } 

    @PersistenceContext 
    private EntityManager em; 

     (fetch and other bla bla methods) 
    } 

回答

2

好,啓蒙總是一分鐘爲時已晚。簡單的@SpringBean註解是特定於檢票的。因此,在SpringSecurity中不依賴於wicket,所以只需用@Autowired替換即可。

相關問題