代码拉取完成,页面将自动刷新
同步操作将从 JbootProjects/jboot 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
在 Jboot 中,默认实现了对 Dubbo、motan 的 RPC 调用支持。在使用 RPC 远程调用之前,需要做一些基本的配置。
例如 :
jboot.rpc.type = dubbo
jboot.rpc.callMode = direct
jboot.rpc.directUrl = 127.0.0.1:8000
更多的配置请查看 config.md
一般情况下,RPC 调用需要以下几个步骤:
定义接口
public interface BlogService {
public String findById();
public List<String> findAll();
}
编写实现类
@RPCBean
public class BlogServiceProvider implements BlogService {
@Override
public String findById() {
return "id from provider";
}
@Override
public List<String> findAll() {
return Lists.newArrayList("item1","item2");
}
}
启动 Server 暴露服务
public class DubboServer {
public static void main(String[] args) {
JbootApplication.run(args);
System.out.println("DubboServer started...");
}
}
启动客户端、通过 RPC 调用 Server 提供的服务
@RequestMapping("/dubbo")
public class DubboClient extends JbootController{
public static void main(String[] args) {
//Undertow端口号配置
JbootApplication.setBootArg("undertow.port", "8888");
JbootApplication.run(args);
}
@RPCInject
private BlogService blogService;
public void index() {
System.out.println(blogService);
renderText("blogId : " + blogService.findById());
}
}
在以上的示例中,使用到了两个注解:
虽然以上示例中,@RPCBean
和 @RPCInject
没有添加任何的参数,但实际是他们提供了非常丰富的配置。
以下分别是 @RPCBean
和 @RPCInject
的定义:
RPCBean :
public @interface RPCBean {
int port() default 0;
int timeout() default -1;
int actives() default -1;
String group() default "";
String version() default "";
//当一个Service类实现对个接口的时候,
//可以通过这个排除不暴露某个实现接口
Class[] exclude() default Void.class;
}
RPCInject :
public @interface RPCInject {
int port() default 0;
int timeout() default -1;
int retries() default -1;
int actives() default -1;
String group() default "";
String version() default "";
String loadbalance() default "";
String async() default "";
String check() default "";
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。