我有课
@Service("registrationService")
@Transactional
public class RegistrationService {
@Resource(name="registrationDAO")
public RegistrationDAO registrationDAO;
在Controller中,我可以毫无问题地访问registrationService和registrationDAO。
我有另一个班级
@Service("securityService")
public class SecurityService implements UserDetailsService {
protected static Logger logger = Logger.getLogger("service");
@Resource(name="registrationDAO")
public RegistrationDAO registrationDAO;
public String test(){
logger.debug(registrationDAO.findUserByID(1) );
return "Testing";
}
现在如果我在控制器中调用测试函数,那么它会在registrationDAO上给出空指针异常
答案 0 :(得分:2)
您的所有@Service
,@Repository
,@Controller
,@Component
(等)注释类必须经过春季管理才能自动装配工作。确保通过spring classpath扫描拾取它们:
<context:component-scan base-package="com.company" />
在某些情况下,按类型自动装配的@Autowire
可以避免您使用name
提供的@Resource
参数。