使用Motan做分布式开发时遇到的一些问题和解决方法

今天终于给我分发了工作任务。。激动到内牛满面。。
虽然很激动,但也很忐忑,因为这是第一次从校园到工作岗位的开发,不是自己随便玩玩,要对代码负责的,所以挺紧张的说实话。
第一个项目就是分布式的一个电商平台。这也是我第一次接触分布式。紧张+1。
其中用到了很多技术都是我从未了解过的,紧张+2。。。
项目技术选型为springBoot 、spring data jpa、motan、zookeeper、ridis、oracle、freeMark等等,咳咳,都是我的新名词。=。=
今天做记录的主要是关于motan的使用上的一些配置问题。
工作任务是在页面上加载一个企业组织结构树,分别从四张表里抓区公司列表层级、部门列表层级、人员信息、人员职位部门映射。
这里就不讲前台的设计和实现了,因为我是做后台的,值负责向前台提供指定的数据就好了。
前台是从list集合里抓取数据的,所以我要给在后台向前台提供一个list集合,里面要有部门id、部门名称、部门上级id等信息。

public List<JsonModel> jstree(){
        //插入公司
        List<JsonModel> list = new ArrayList<>();
        List<CoreCompany> hq = companyApi.findByIsDelete(false);
        for (int i=0;i<hq.size();i++) {
                if (Lang.isEmpty(hq.get(i).getParent())) {
                    JsonModel jsonModel = new JsonModel();
                    jsonModel.setId(hq.get(i).getId());
                    jsonModel.setParent("#");
                    jsonModel.setText(hq.get(i).getName());
                    jsonModel.setIcon("false");
                    list.add(jsonModel);


                } else {
                    JsonModel jsonModel = new JsonModel();
                    jsonModel.setId(hq.get(i).getId());
                    jsonModel.setParent(hq.get(i).getParent().getId());
                    jsonModel.setText(hq.get(i).getName());
                    jsonModel.setIcon("false");
                    list.add(jsonModel);
 // 插入部门
    List<CoreDepartment>bm=departmentApi.findAllByCompanyidAndIsDelete(hq.get(i).getId(),false);
                    for(int j=0;j<bm.size();j++){
                        if(bm.get(j).getParent()==null){
                           JsonModel jsonModel1=new JsonModel();
                           jsonModel1.setId(bm.get(j).getId()                        
                           jsonModel1.setParent(bm.get(j).getCoreCompany().getId());
                           jsonModel1.setText(bm.get(j).getName());
                           jsonModel.setIcon("false");
                           list.add(jsonModel1);
                        } else
                            {
                                JsonModel jsonModel1=new JsonModel();
                                jsonModel1.setId(bm.get(j).getId());
                                jsonModel1.setParent(bm.get(j).getParent().getId());
                                jsonModel1.setText(bm.get(j).getName());
                                jsonModel.setIcon("false");
                                list.add(jsonModel1);
                            }
                    }
                }
            }


        return list;

在如下代码中出现异常

    List<CoreDepartment>bm=departmentApi.findAllByCompanyidAndIsDelete(hq.get(i).getId(),false);

经过检查和查资料发现,还是因为对于motan的工作原理理解不深造成的。
这里写图片描述
这里使用了api接口
在实现了api接口的文件里对该方法进行了具体是实现,调用了service中的业务方法
这里写图片描述
然后问题来了,在实现了这个接口的类里,我没有把他注解为motan服务,所以代码执行到这里根本就不能再motan上发现服务,所以出错

@MotanService(basicService = "motanServerBasicConfig")//一开始没写
public class CoreCompanyApiImpl implements CoreCompanyApi {

加上注解后,问题解决,成功加载了企业组织架构
现在我还在思考一个问题,在这次开发过程中,我发现从较大规模的数据库中提取数据然后用for循环遍历有很大的系统开销,性能太差,请问还有更加高性能的遍历方式吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值