我一直在学习 Spring MVC 4 ,我知道Spring有几个注释可以更快地开发。 This question and answer非常好地解释了@ Component,@ Service,@ Repository和@Controller之间的关系。我的问题是:
可以从另一台计算机上调用 @service 类作为常见的wsdl服务吗?例如,来自作为服务客户端的独立应用程序。
或 @service 注释只是为了标记类的使用?
由于
答案 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
。