小牛学堂()。Java大数据笔记、代码、视频首发官网。免费高清~多多支持魔力商城第二天1内容回顾1、聊聊电商行业2、魔力商城功能介绍3、魔力商城系统架构a)传统的系统架构b)分布式系统架构4、工程搭建a)使用maven管理工程b)搭建一个聚合工程i.Pojoii.Mapperiii.Serviceiv.Web(war)5、Ssm框架整合a)Mybatis的逆向工程b)Mybatis整合spring+springmvc2课程计划1、把工程改造成基于soa系统架构a)使用dubbo2、商品列表查询功能实现a)Easyui的DataGrid控件b)Mybatis的分页插件小牛学堂()。Java大数据笔记、代码、视频首发官网。免费高清~多多支持3改造工程3.1魔力商城的系统架构后台管理系统商城门户搜索系统订单系统会员系统服务中间件Dubbo商品服务内容服务单点登录服务订单服务搜索服务缓存redisMyCat数据库中间件Mysql数据库Mysql数据库Mysql数据库Mysql数据库Solr服务索引库消息队列ActiveMQ服务层表现层持久层例如:后台管理工程需要根据商品id查询商品信息。前台系统也需要根据商品id查询商品信息。两个相同的业务逻辑可以可使用相同的服务。表现层服务层dao层后台管理系统1、系统之间调用可以使用Webservice2、可以使用dubbo管理服务。小牛学堂()。Java大数据笔记、代码、视频首发官网。免费高清~多多支持3.2Dubbo3.2.1Dubbo介绍官方网站:就是资源调度和治理中心的管理工具。商品服务小牛学堂()。Java大数据笔记、代码、视频首发官网。免费高清~多多支持3.2.2Dubbo的架构节点角色说明:Provider:暴露服务的服务提供方。Consumer:调用远程服务的服务消费方。Registry:服务注册与发现的注册中心。Monitor:统计服务的调用次调和调用时间的监控中心。Container:服务运行容器。3.2.3Dubbo的使用方法远程服务:在本地服务的基础上,只需做简单配置,即可完成远程化:将上面的local.xml配置拆分成两份,将服务定义部分放在服务提供方remote-provider.xml,将服务引用部分放在服务消费方remote-consumer.xml。并在提供方增加暴露服务配置dubbo:service,在消费方增加引用服务配置dubbo:reference。发布服务:!--和本地服务一样实现远程服务--beanid=xxxServiceclass=com.xxx.XxxServiceImpl/!--增加暴露远程服务配置--dubbo:serviceinterface=com.xxx.XxxServiceref=xxxService/调用服务:!--增加引用远程服务配置--dubbo:referenceid=xxxServiceinterface=com.xxx.XxxService/小牛学堂()。Java大数据笔记、代码、视频首发官网。免费高清~多多支持!--和本地服务一样使用远程服务--beanid=xxxActionclass=com.xxx.XxxActionpropertyname=xxxServiceref=xxxService//bean3.3工程的改造方案把工程拆分成两个独立运行的工程:1、后台服务端工程moli-manager:包含:moli-manager-daomoli-manager-pojomoli-manager-service模块,打成一个war包(目的是方便部署)。包含一个spring容器发布服务。2、web展现工程:moli-manager-web包含:web程序的页面一个spring容器,用于处理http请求moli-manager-controller3、把接口文件单独打成一jar包,服务端工程依赖、表现层工程也依赖。3.4后端服务工程改造步骤第1步:从moli-manager-web工程中把spring、properties、mybatis配置文件拷贝到moli-manager-service工程中,并且删除springmvc.xml第2步:在moli-manager下新建一个模块moli-manager-interface再从moli-manager-service工程中将接口包整体移动到moli-manager-interface第3步:moli-manager-service工程的pom中添加对moli-manager-interface和dubbo的依赖添加dubbo依赖的jar包dependencygroupIdcom.alibaba/groupIdartifactIddubbo/artifactId/dependencydependencygroupIdorg.apache.zookeeper/groupIdartifactIdzookeeper/artifactId/dependencydependencygroupIdcom.github.sgroschupf/groupIdartifactIdzkclient/artifactId小牛学堂()。Java大数据笔记、代码、视频首发官网。免费高清~多多支持/dependency第4步:在applicationContext-service.xml配置文件中发布服务引入dubbo的schema,配置服务?xmlversion=1.0encoding=UTF-8?beansxmlns=:context=:p=:aop=:tx=:xsi=:dubbo=:schemaLocation=://://://://code.alibabatech.com/schema/dubbo://://://://://://!--配置包扫描器,扫描带@Service注解的类--context:component-scanbase-package=com.moli.service/!--发布服务--!--提供方应用信息,用于计算依赖关系--dubbo:applicationname=moli-manager-service/!--使用multicast广播注册中心暴露服务地址--dubbo:registryaddress=multicast://224.5.6.7:1234/!--用dubbo协议在20880端口暴露服务--dubbo:protocolname=dubboport=20880/!--声明需要暴露的服务接口--dubbo:serviceinterface=com.moli.service.ItemServiceref=itemServiceImpl//beans第5步:在moli-manager-service工程中建个package写一个service后台服务工程的启动类:packagecom.moli.manager.service.bootstrap;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassManagerSerivceBootStrap{publicstaticvoidmain(String[]args)throwsException{小牛学堂()。Java大数据笔记、代码、视频首发官网。免费高清~多多支持ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(classpath:spring/applicationContext-*.xml);context.start();while(true){Thread.sleep(Long.MAX_VALUE);}}}3.5前端web展现工程改造步骤改造moli-manager-web工程。第1步:删除mybatis、和spring的配置文件。只保留springmvc.xml第2步:将moli-manager-web工程从moli-manager工程中移出到moli-parent下第3步:在moli-manager-web工程的pom文件中添加dubbo的依赖,删除moli-manager-service的依赖1、添加dubbo的依赖!--dubbo相关--dependencygroupIdcom.alibaba/groupIdartifactIddubbo/artifactId/dependencydependencygroupIdorg.apache.zookeeper/groupIdartifactIdzookeeper/artifactId/dependencydependencygroupIdcom.github.sgroschupf/groupIdartifactIdzkclient/artifactId/dependency第4步:在moli-manager-web工程中引用dubbo配置。1、在springmvc.xml中添加dubbo的schema。?xmlversion=1.0encoding=UTF-8?beansxmlns=