发表于: 2017-02-26 23:33:36

1 1626


今天完成的事情:

1、学习SCATuscany知识

2、研究项目代码

明天计划的事情:

继续研究萝卜多代码

遇到的问题:

1、早上还能正常访问,到了晚上访问报错了:

                                             

又返回了空数据:

好像开发机上的数据库不能访问了:


 

收获:

1、昨天啰里啰嗦自己理解都不太明白,今天又看一遍比昨天好点了,就重新总结一下:

先说服务端,组合构件利用了tuscany工厂,是server.composite文件

组合构件的名字叫CarrotsHomeComponent,接着构件引用了一个配置文件

在这个配置文件中配置引用了其他组件,看一下引用的professionService组件:

这里target设置为professionService,即是引用professionService组件,而professionService组件的配置在server.composite文件并同时绑定为RMI服务:

<interface.java/>指向的就是ProfessionService接口,这个就是透露给外部访问的接口;<scallop:binding.rmi/>配置了RMI服务端的ip和端口号、RMI服务的服务名称serviceName,以供外界访问的名字。

这里用到了scallop,在scallop.properties文件中配置了scallop参数:

这里用到了开发机的一个数据库:

开发机ip120.92.4.210 ,需要本地修改一下hosts

scallop.resource.center指向开发机,开发机上的一个数据库resources,其中resources表有一条数据:

服务端注册一个远程RMIregistryNameprofession-carrots-home-service-rmi对应的是carrots.home.service:10528,这个正是professionService配置的RMI服务端的ip和端口号,后面客户端访问的就是这个。

 

再来看WEB客户端

WEB-INF/spring/applicationContext-client.xml

professionService指向了service层暴露给外部访问的接口,这里用到了client.composite的配置,看一下:

客户端组件也通过scallop绑定了远程RMIregistryName正是注册的profession-carrots-home-service-rmi,开发机数据库中对应的carrots.home.service:10528,这样WEB层就可以访问到service层数据了

这里还要注意一点,<implementation.java/>指向的是ProfessionSCAClient类,这个类是在core层中的,而昨天也正是分析到这里卡住了,ProfessionController中调用getIdsByDynamicCondition方法最终正是调用了ProfessionSCAClient中的方法

2、接昨天的继续分析ProfessionService中的代码:

                                             

243行和246行调用了getIdsByDynamicCondition方法,这个方法的具体实现昨天一直没找到,今天终于找到了,在commons-dao-util-0.0.1.jar包下BaseDaoServiceImpl实现类中:

用到了反射注解之类的,挺复杂,不过这不是我们关注的重点,只要知道最后得到了id列表就可以了,继续往下分析

258行调用了getObjectsByIds方法,这个方法的具体实现在ProfessionServiceImpl类中:

主要一句调用了daogetList方法,这个方法又是一个jar包下的方法,具体实现不管,知道调用它得到了profession列表。

再往下:

获得职位标签列表:

下面通过职位列表获取公司id列表,并去除重复的id

再通过公司id列表得到公司列表:

通过公司id列表还能得到公司行业id列表和公司行业列表:

明天继续




返回列表 返回列表
评论

    分享到