从另一个项目调用spring @service

时间:2014-08-28 19:27:35

标签: java spring web-services spring-mvc wsdl

我一直在学习 Spring MVC 4 ,我知道Spring有几个注释可以更快地开发。 This question and answer非常好地解释了@ Component,@ Service,@ Repository和@Controller之间的关系。我的问题是:

  1. 可以从另一台计算机上调用 @service 类作为常见的wsdl服务吗?例如,来自作为服务客户端的独立应用程序。

  2. @service 注释只是为了标记类的使用?

  3. 由于

4 个答案:

答案 0 :(得分:3)

使用@Service注释的类中的方法不能从外部调用,但通常的做法是在层上添加另一个通常称为facade的层,您可以使用@Service注释类(通常称为服务层) 。使用此Facade,您可以通过REST,SOAP等不同方式公开您的服务。

答案 1 :(得分:2)

注释@Service只是@Component注释的特殊版本,其目的不是提供对实现的远程访问。

如文档中所述,@ Service注释有助于在类路径扫描期间自动检测类(请参阅JavaDoc)并由某些工具处理。 另请查看Spring's forum上的说明。

答案 2 :(得分:1)

我不认为可以使用@service来调用它需要使用@Webservice注释该类以将其暴露给外部世界

答案 3 :(得分:1)

不要将javax @WebService与定义为here的Spring @Service混淆。虽然两者都被称为服务@Service的目的很简单:

  

此注释用作@Component的特化,允许通过类路径扫描自动检测实现类。

因此,由于@WebService用于 WSDLs (外部访问),因此@Service用于Spring的内部使用。 如果您想访问"服务"在其他计算机上,您必须编写@WebService或使用@RequestMapping SpringMVC