春豆可以在不同地方使用还是在一个地方使用

发布于 2024-10-25 06:31:10 字数 1028 浏览 1 评论 0原文

假设我在控制器中有这个,

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

这工作正常,我可以使用服务类中的方法。

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

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

和访问方法,或者我必须在 spring 中使用不同的名称声明不同的 bean

这是 Service 类中的函数

public String test(){   return "testing"; }

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

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

private List insideDatabase() {

        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());

不会执行。如果我删除该行,一切正常。我不知道出了什么问题

Suppose i have this in controller

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

This is working fine and i can use methods in service class.

Now suppose i have different java class and i want to use methods in registrationService class . so can i use same thing there

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

and access methods or i have to declare different bean in spring with different name

This is the function in Service class

public String test(){   return "testing"; }

Now if i call this in controller , it works fine .

But i have separate class called UserDAO for getting users.
If i do like this

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;
    }

Anything after

logger.debug(registrationService.test());

is not executed . if i remove that line everything works . i don't know whats the problem

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

丘比特射中我 2024-11-01 06:31:10

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

Yes, you can use Spring to inject the same bean into two different classes.

生寂 2024-11-01 06:31:10

我最好的猜测是发生了 NullPointerException,

 logger.debug(registrationService.test());

这就是后续行未执行的原因。 RegistrationService,我相信容器没有正确注入。确保您的服务类在 applicationContext.xml 中正确定义,或者包包含在组件扫描中。

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

my best guess is a NullPointerException occured on

 logger.debug(registrationService.test());

that's why the succeeding lines wasn't executed. registrationService, i believe wasn't properly injected by the container. Make sure that your service class is either properly defined on your applicationContext.xml or the package is included on the component scanning.

Make sure also that UserDAO is managed by Spring or has a way (if not) to access your spring-managed service class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文