如题,或者推荐相似的框架也可以,前提不需要集成其他容器等。
在线等着呢,,大神们。
这个需要你自己解析consumer的dubbo配置文件,然后对service实例进行封装。
dubbo的官方文档上有的。
private static void init(String name, Class clazz) {
// 引用远程服务
ReferenceConfig<T> reference = new ReferenceConfig<T>(); // 该类很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
reference.setApplication(application);
reference.setRegistry(registry); // 多个注册中心可以用setRegistries()
reference.setInterface(clazz);
reference.setId(name);
synchronized (hmReferenceConfig) {
hmReferenceConfig.put(name, reference);
}
}
public static <T> T getBean(String name, Class<T> clazz) {
try {
T service = (T) hmService.get(name);
if (service != null) {
return service;
}
ReferenceConfig<T> reference = hmReferenceConfig.get(name);
if (reference == null) {
init(name, clazz);
reference = hmReferenceConfig.get(name);
}
reference.setApplication(application);
reference.setRegistry(registry); // 多个注册中心可以用setRegistries()
reference.setInterface(clazz);
service = (T) reference.get();// 获取远程服务代理;
synchronized (hmService) {
hmService.put(name, service);
}
return service;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。