Spring Injection不能在不同的服务类中工作

时间:2011-03-25 19:40:15

标签: java spring-mvc annotations

我有课

@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上给出空指针异常

1 个答案:

答案 0 :(得分:2)

您的所有@Service@Repository@Controller@Component(等)注释类必须经过春季管理才能自动装配工作。确保通过spring classpath扫描拾取它们:

<context:component-scan base-package="com.company" />

在某些情况下,按类型自动装配的@Autowire可以避免您使用name提供的@Resource参数。