2011-02-15 6 views
0

Spring, Wicket, Hibernate, Spring Security의 app consiting을 개발한다. 모든 것이 정상적으로 작동하지만 이제 데이터베이스에서 사용자를 가져 오기 위해 UserDetailsService 구현을 추가했습니다. applicationContext-security.xml 파일에서 구성하고 Spring을 사용하여 내 UserDAO에 종속성을 추가했습니다. 그러나, 내 userDAO null 때문에 null 포인터 예외가 있어요. 이 종속성이 작동하지 않는 이유는 무엇입니까? 나는 이것을 WebPages 하위 클래스에서 매우 똑같은 방식으로 수행하며 모든 것이 잘 작동합니다.UserDetailsService 자체 구현시 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로 바꾸면됩니다.

관련 문제