我可以在不同的地方或在一个地方使用春豆

时间:2011-03-24 03:44:48

标签: java spring spring-mvc

假设我在控制器中有这个

@Resource(name="registrationService")
private RegistrationService registrationService;

这很好用,我可以在服务类中使用方法。

现在假设我有不同的java类,我想在registrationService类中使用方法。所以我可以在那里使用相同的东西

@Resource(name="registrationService")
private RegistrationService registrationService;

和访问方法或我必须在春天用不同的名称声明不同的bean

这是Service class

中的函数
public String test(){   return "testing"; }

现在,如果我在控制器中调用它,它可以正常工作。

但我有一个名为UserDAO的单独类用于获取用户。 如果我喜欢这个

private List internalDatabase(){

        List<Registration> users = new ArrayList<Registration>();
        Registration user = null;

            logger.debug("Before");
    logger.debug(registrationService.test());
    logger.debug("After");

            users.add(user);
        return users;
    }

之后的任何事情
logger.debug(registrationService.test());

未执行。如果我删除该行一切正常。我不知道这个问题是什么

2 个答案:

答案 0 :(得分:1)

是的,您可以使用Spring将相同的bean注入两个不同的类中。

答案 1 :(得分:0)

我最好的猜测是在

上发生了NullPointerException
 logger.debug(registrationService.test());

这就是为什么没有执行后续行。 registrationService,我相信容器没有正确注入。确保在applicationContext.xml上正确定义了服务类,或者组件扫描中包含了该包。

确保UserDAO由Spring管理,或者有办法(如果没有)访问Spring管理的服务类。