我一直在为此寻找一些时间,但我似乎无法找到答案。我正在使用 Spring RMI 远程处理,我想使用注释配置。
这可能吗?
据我所知,spring 没有基于标准注释的 RMI 支持。我遇到了这个链接(它的泰语),它简要介绍了创建一个可以在 spring 容器环境中使用的自定义注释。
正如@Santosh 回答的那样,RMI 支持没有标准注释。但是您可以使用标准 bean 注释来注册 RMI bean。
在服务端执行此操作(参数 barService 是 Spring 注入的服务的实现 -> 所以需要已经注册了这样的 bean):
@Bean
public RmiServiceExporter registerService(BarService barService) {
RmiServiceExporter rmiServiceExporter = new RmiServiceExporter();
rmiServiceExporter.setServiceName("BarService");
rmiServiceExporter.setService(barService);
rmiServiceExporter.setServiceInterface(BarService.class);
rmiServiceExporter.setRegistryPort(5000);
return rmiServiceExporter;
}
客户端:
@Bean
public BarService createBarServiceLink() {
RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
rmiProxyFactoryBean.setServiceUrl("rmi://localhost:5000/BarService");
rmiProxyFactoryBean.setServiceInterface(BarService.class);
rmiProxyFactoryBean.afterPropertiesSet();
return (BarService) rmiProxyFactoryBean.getObject();
}