2

我有一个 WEB 应用程序。我被要求从 POJO 调用 Spring 应用程序内的类(服务)。

该服务不作为 Web 服务或 REST 公开。我只是一个罐子里的应用程序。我必须添加它来构建路径并调用服务。

会起作用吗??

我非常困惑!

4

2 回答 2

2

这里没有太多细节,但我假设这是一个使用 Spring MVC 的 Spring 应用程序,在这种情况下是的,没有理由不能将服务作为一个类来调用。

这就是为什么您可以在 Spring 中使用 JUnit 测试 @Controller 类的原因,它实际上只是一个 POJO。

下面的链接作为如何执行此操作的示例。

如何使用 @PathVariable 对 Spring MVC 控制器进行单元测试?

于 2012-10-22T12:40:39.400 回答
1

如果您的 pojo 是 Spring Bean,那么您可以像这样自动装配服务:

public class YourPojo {
   @Autowired
   YourService yourService; 
}

您可能会考虑通过使用 @Component 注释 Pojo 或在 ApplicationContext.xml 中声明它来使您的 Pojo 成为 Spring Bean

如果没有,如果你有一个请求对象,你会得到这样的服务:

ServletContext sc = req.getSession().getServletContext();
ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);
YourService yourService = ac.getBean("yourService");
于 2012-10-22T12:40:06.303 回答