【发布时间】:2011-06-27 21:46:51
【问题描述】:
我开发了包含 Spring、Wicket、Hibernate 和 Spring Security 的应用程序。一切正常,但现在我添加了自己的 UserDetailsService 实现来从数据库中获取用户。我在 applicationContext-security.xml 文件中对其进行了配置,并使用 Spring 向我的 UserDAO 添加了依赖项。但是,由于我的 userDAO 为空,我得到了空指针异常。为什么这种依赖不起作用?例如,我在 WebPages 子类中以相同的方式执行此操作,并且一切正常。
@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)
}
【问题讨论】: