javaEE商城第二天笔记_第1页
javaEE商城第二天笔记_第2页
javaEE商城第二天笔记_第3页
javaEE商城第二天笔记_第4页
javaEE商城第二天笔记_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、魔力商城第二天内容回顾1、聊聊电商行业2、魔力商城功能介绍3、魔力商城系统架构a)传统的系统架构b)分布式系统架构4、工程搭建a)使用maven管理工程b)搭建一个聚合工程PojoMapperServiceWeb(war)5、Ssm框架整合Mybatis的逆向工程Mybatis整合spring+springmvc课程计划1、把工程改造成基于soa系统架构a)使用dubbo2、商品列表查询功能实现Easyui的DataGrid控件Mybatis的分页插件改造工程3.1持久层表现层服务层消息队列ActiveMQ数据库中间件索引库数据库数据库表现层服务层服务层dao层例如:后台管理工程需要根据商品i

2、d查询商品信息。前台系统也需要根据商品id查询商品信息。两个相同的业务逻辑可以可使用相同的服务。后台管理系统后台管理系统1、系统之间调用可以使用Webservice2、可以使用dubbo管理服务。商品服务3.2DubboDubbo介绍官方网站: HYPERLINK http:/dubbo.io/Home-zh.htm http:/dubbo.io/Home-zh.htmDubbo就是资源调度和治理中心的管理工具。Dubbo的架构节点角色说明:Provider:暴露服务的服务提供方。Consumer:调用远程服务的服务消费方。Registry:服务注册与发现的注册中心。Monitor:统计服务的

3、调用次调和调用时间的监控中心。Container:服务运行容器。Dubbo的使用方法远程服务:在本地服务的基础上,只需做简单配置,即可完成远程化:将上面的local.xml配置拆分成两份,将服务定义部分放在服务提供方remote-provider.xml,将服务引用部分放在服务消费方remote-consumer.xml。并在提供方增加暴露服务配置,在消费方增加引用服务配置。发布服务:!-和本地服务一样实现远程服务-!-增加暴露远程服务配置-调用服务:!-增加引用远程服务配置-propertyname=xxxServiceref=xxxService/工程的改造方案把工程拆分成两个独立运行的工

4、程:1、后台服务端工程moli-manager:包含:moli-manager-daomoli-manager-pojomoli-manager-service模块,打成一个war包(目的是方便部署)。包含一个spring容器发布服务。2、web展现工程:moli-manager-web包含:web程序的页面一个spring容器,用于处理http请求moli-manager-controller3、把接口文件单独打成一jar包,服务端工程依赖、表现层工程也依赖。后端服务工程改造步骤第1步:从moli-manager-web工程中把spring、properties、mybatis配置文件拷贝到

5、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包dependency)com.alibabadubbo/dependency)dependency)org.apache.zookeeperartifac

6、tId)zookeeper/dependency)dependency)groupId)com.github.sgroschupfartifactId)zkclient/artifactId)/dependency)第4步:在applicationContext-service.xml配置文件中发布服务弓|入dubbo的schema,配置服务!-配置包扫描器,扫描带$9政立9注解的类-!-发布服务-!-提供方应用信息,用于计算依赖关系-!-使用multicast广播注册中心暴露服务地址-!-用dubbo协议在20880端口暴露服务-第5步:在moli-manager-service工程中建个p

7、ackage写一个service后台服务工程的启动类:packagecom.moli.manager.service.bootstrap;importorg.springframework.context.support.ClassPathXmlApplicationContext;publicclassManagerSerivceBootStrappublicstaticvoidmain(Stringargs)throwsExceptionClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(class

8、path: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、添加du

9、bbo的依赖dependency)com.alibabadubbo/dependency)dependency)org.apache.zookeeperartifactId)zookeeper/dependency)dependency)groupId)com.github.sgroschupfartifactId)zkclient/artifactId)/dependency)第4步:在moli-manager-web工程中引用dubbo配置。1、在springmvc.xml中添加口dubbo的schema。?xmlversion=1.0encoding=UTF-8?)!-!-第五步:所以的

10、逆向工程生成的pojo需要实现序列化接口。3.6dubboZookeeper介绍官方推荐使用zookeeper注册中心。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。使用dubbo-2.3.3以上版本,建议使用zookeeper注册中心。Zookeeper是ApacaheHadoop的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用Zookeeper:1、可以作为集群的管理工具使用。2、可以集中管理配置文件。Zookeeper的安装安装环境:Lin

11、ux:cengos6.4Jdk:1.7以上版本Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。安装步骤:第一步:安装jdk第二步:把zookeeper的压缩包上传到linux系统。第三步:解压缩压缩包tar-zxvfzookeeper-3.4.6.tar.gz第四步:进入zookeeper-3.4.6目录,创建data文件夹。第五步:把zoo_sample.cfg改名为zoo.cfgrootlocalhostconf#mvzoo_sample.cfgzoo.cfg第六步:修改data属性:dataDir=/root/zookeeper-3.4.6/

12、data第七步:启动zookeeperrootlocalhostbin#./zkServer.shstart关闭:rootlocalhostbin#./zkServer.shstop查看状态:rootlocalhostbin#./zkServer.shstatus注意:需要关闭防火墙。注册中心的用法服务发布时需要连接注解中心。!-.发布法务-!-提斯明善息,月干计都缺系一d|jb3a:ap-便用胤燃r苣虻口.谭霆服务跑一一一加口;“EE;stadd/M5=叨算起武:/224.5.6+7:12抑7一!一用加斯城议口林况那二短N至一!一空明雪要暴露日服务妄口引用服务时需要连接注册中心::州,tuo

13、tao,沈欣3n前5er出I固=让日汗$明出虱叩LDubbo的Monitor名称-修改日期类型大小文档2015/12/717:27文件夹1dubbo.xsd2015/12/511:54XSD文件47KBdubbci-adjTiin_2.5.4.war2015/12/717:27叶耻文件2瓦94KB配置monitor的方法:第一步:把dubbo-admin.war上传到linux服务器第二步:安装tomcat,把war包部署到tomcat中。第三步:修改/dubbo-admin/WEB-INF/perties属性文件。dubbo.registry.address=zookeeper:/:2181

14、为注册中的实际地址。第四步:启动tomcat,访问 HYPERLINK 67:8080/dubbo-admin/ 67:8080/dubbo-admin/用户名:root密码:root暨坪抬IF4后台管理系统:商品列表查询功能4.0毓rw箕曲瞄鳄点可用醺胖葭帆苜泡、4.0酬侬1桁如怒靛力鞭聂11、前期调研立项,组件团队2、项目工程整体架构设计3、项目工程骨架搭建4、需求沟通,功能分析5、页面原型设计,美工UI设计6、页面代码开发(HTMLCSSJS)7、后台功能代码开发添加静态页面:1案-2.0,01.参考资料,稳态页面”后台管理系统静态页面,而搜索后台管理系统静态页面J帮助00快扫C55名就

15、二I修改日期|C552015/12/716:27文件夹2015/12/716:27文件夹2015/12/716:27文件夹添加至Umoli-manager-web工程中。src/main/webapp/WEB-INF/.4.1通过访问controller跳转到首页。请求的url:网网由于springmvc.xml配置拦截请求的url是“/”所以css、js同样被拦截。需要配置一个资源映射pageController:ControllerpublicclassPageControllerRequestMapping(/)privateStringshowIndex()returnindex;Re

16、questMapping(/page)publicStringshowPage(PathVariableStringpage)returnpage;4.2商品列表实现需求分析请求的url:/item/list请求的参数:page、rows响应一个json数据,数据格式。Easyui中datagrid控件要求的数据格式为:total:2,rows:id:T,nameT%m,id:2,name:李四需要对应此数据结构创建一个pojo类此类包含两个属性:1、total2、rows(每页的数据)List中的每个元素是TbItem对象。应该把此匕pojo放至“moli-common中。publiccla

17、ssEasyUIDataGridResultimplementsSerializableprivatelongtotal;privateListrows;publiclonggetTotal()returntotal;publicvoidsetTotal(longtotal)this.total=total;publicListgetRows()returnrows;publicvoidsetRows(Listrows)this.rows=rows;分页处理:可以使用mybatis的分页插件PageHelper。PageHelper分页插件的原理SqlMapConfig.xmer.xmlSql

18、MapConfig.xmer.xmlSqlSessionFactory工厂对象,SqlSession生成SqlSession。提供很多用户方法。Executor对象,执行sql语句Sql语句封装成MappedStatement使用方法第一;2122232-使用方法第一;2122232-乃26-U%293a31321元步:rR:把分页插件的jar包添:./d加到工程中(哪个工程?)。dependencygroupldx)rg+mybatisinybati&-&pririgcan.github+miemiedev4artifactldiqy心tis叩aginart口4/atifactlcbcam.

19、github+pagehelperx/groupldi3cEehelcerc/arti-actId/dependency二步:在SqlMapConfig.xml中配置插件(什么位置?)。/trrnniniTidxmfcJcnl/tfrrnBmTrl/trrnniniTidxmfcJcnl/tfrrnBmTrlPUBLIC-/DTDConfig3.0/EN HYPERLINK /dtd/mybatis-3-config.dtd /dtd/mybatis-3-config.dtdconfiguration)propertyname=dialectvalue=mysql/configuration)

20、第三步:在执行查询之前设置分页。PageHelper.startPage(1,10);两个参数:第一个:page第二个是rows第四步:从返回结果中得到分页信息创建一个PageInfo对象,需要返回的结果集作为参数。就可以从PageInfo对象取分页信息。/Pageinfo包含了非常全面的分页属性assertEquals(1,page,getPageNum();assertEquals(10,page.getPageSize();assertEquals(1,page.getStartRow();assertEquals(10,page.getEndRow();assertEquals(183

21、,page.getTotal();assertEquals(19,page.getPages();assertEquals(1,page.getFirstPage();assertEquals(8,page.getLastPage();assertEquals(true,page.isFirstPage();assertEquals(false,page.isLastPage();assertEquals(false,page.isHasPreviousPage();assertEquals(true,page.isHasNextPage();测试分页插件publicclassPageHelp

22、erTestTestpublicvoidtestPageHelper()throwsException初始化spring容器ApplicationContextapplicationContext=newClassPathXmlApplicationContext(classpath:spring/applicationContext-*.xml);从容器中获得mapper的代理对象TbItemMapperitemMapper=applicationContext.getBean(TbltemMapper.class);分页设置PageHelper.startPage(1,30);/执行查询T

23、bItemExampleexample=newTbItemExample();Listlist=itemMapper.selectByExample(example);/取分页信息PageInfopageInfo=newPageInfo(list);System.out.println(总记录数:+pageinfo.getTotal();System.out.println(总页数:+pageinfo.getPages();System.out.println(list.size();Dao层可以使用逆向工程生成的代码Service层业务逻辑:接收page、rows两个参数,设置分页信息,执行查询得到查询结果。从查询结果中取total、商品列表,创建EasyUIDataGridResult对象,返回。参数:page、rows返回值:EasyUIDataGridResult/*查询商品列表Title:getItemListDescription:parampageparamrowsreturnseecom.moli.service.ItemService#getItemList(int,int)/OverridepublicEasyUIDataGridResultgetItemList(intpage,introws)/分页处理PageHelpe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论