淘淘商城
在京奋斗者
这个作者很懒,什么都没留下…
展开
-
学习淘淘商城第一百零二课(订单系统服务端和客户端工程搭建)
首先我们还是先看一眼淘淘商城的系统架构,如下图所示,可以看到订单模块是单独的模块,有服务端还有客户端,服务端负责存储订单,客户端负责展示订单。 下面我们便来搭建订单服务,点击File---->New----->Other...如下图所示。 选择"Maven Project",然后点击"Next",如下图所示。原创 2017-06-15 23:00:46 · 2283 阅读 · 0 评论 -
学习淘淘商城第一百零三课(利用拦截器实现登录功能及订单确认页面展示)
我们上节课一起搭建了订单的服务工程和web工程,我们参考京东可以知道,京东在没有登录时就可以使用购物车,但是当要真正付款的时候,一定是要求登录的。也就是说由购物车列表页面直接跳转到登录页面去登录。这显然用到了拦截器的功能,这节课我们便一起实现登录功能。 下图便是购物车列表页面,我们点击"去结算",如果当前用户还没登录,是必须要先登录的。 下面我们便来写原创 2017-06-16 22:09:24 · 3866 阅读 · 0 评论 -
学习淘淘商城第一百零四课(生成订单)
首先提醒一下,我2017-06-17日上午补充了下上篇博客,没有看完的同学可以回到上篇博客进行学习。这节课我们一起学习下生成订单。第一部分:订单数据库分析 我们先来看下tb_order表,如下图所示,可以看到,主键order_id是字符串类型,不是自增长的,因此我们需要自己生成订单编号。payment字段是实付金额,需要从前台传过来,保留小数点后2位,payment_type原创 2017-06-17 15:12:47 · 4771 阅读 · 0 评论 -
学习淘淘商城第一百零五课(定时任务---Quartz)
一、什么是Quartz Quartz是OpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个、百个、甚至好几万个Jobs这样复杂的日程程序表。Jobs可以做成标准的Java组件或EJBs。 Quartz是一个任务日程管理系统,一个在预先确原创 2017-06-19 21:32:38 · 3015 阅读 · 0 评论 -
学习淘淘商城第一百零六课(Mycat简单入门)
一:什么是Mycat? 简单的说,Mycat就是: 一个彻底开源的,面向企业应用开发的"大数据库集群" 支持事务、ACID、可以替代Mysql的加强版数据库 一个可以视为"Mmysql"集群的企业级数据库,用来代替昂贵的Oracle集群。 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server原创 2017-06-20 18:03:12 · 1970 阅读 · 0 评论 -
学习淘淘商城第一百零七课(Mycat的数据库分片)
一:需求 把商品表分片存储在三个数据节点上二:环境 mysql节点1环境 操作系统版本:centos6.8 数据库版本:mysql-5.6 mycat版本:1.4 release 数据库名:db1、db3 ip:192.168.156.41原创 2017-06-21 18:01:58 · 3462 阅读 · 2 评论 -
学习淘淘商城第一百零八课(Mycat的读写分离)
数据库读写分离对于大型系统或访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数据取决于系统的压力,通常是1-3个读节点的配置。读写分离如果不用mycat的话,就需要配置两套数据源,读的时候用一套数据源,写的时候用另外一套数据源,然后配置数据库主从复制,然而这种做法无法进行分片,也就是说,当数据量很原创 2017-06-22 23:03:43 · 1905 阅读 · 2 评论 -
学习淘淘商城第五十八课(ActiveMQ发送topic消息和接收topic消息)
前两节我们一起学习了发送队列消息及消费队列消息,这节我们一起学习下如何发送topic消息。 我们在测试类中添加一个测试方法,用来测试发送topic消息,如下图所示,其实这个方法与发送队列消息几乎一样,只是创建Destination对象的时候不一样而已。 测试代码如下: @Test public void testTopicProducer() thro原创 2017-05-07 17:39:16 · 1733 阅读 · 3 评论 -
学习淘淘商城第十五课(dubbo监控中心)
前面我们学过了dubbo的架构图,如下图所示。我们目前已经完成了除monitor之外的其它模块,那么我们现在便一起学习下怎样使用monitor。 大家需要到:http://download.csdn.net/detail/u012453843/9794429这个地址下载dubbo-admin-2.5.4.war,这是监控中心的war包,可以直接放到tomcat下运行的。我们需要原创 2017-03-26 19:45:03 · 4128 阅读 · 2 评论 -
学习淘淘商城第九十七课(商品详情页面对加入购物车进行改造)
我们访问淘淘商城首页(前提是启动了所有的服务及工程,虽然有个别工程用不上,不过也没关系),在搜索框中输入要搜索的商品,我以前添加过"金立M2017"这款手机,我就搜索它。 搜索到的结果页面如下图所示。 我们再点击这款手机,查看详情,如下图所示。 如果我们这时点击上图的"加入购物车",如下图所示,可以看到地址并不正原创 2017-06-11 22:27:29 · 2817 阅读 · 5 评论 -
学习淘淘商城第九十六课(购物车实现分析及工程搭建)
关于购物车模块,京东和淘宝并不一样,京东允许用户在没有登录的情况下就使用购物车,而且加到购物车里面的商品可以一直保存着(其实是放到了Cookie当中,如果清空了Cookie也就清空购物车了)。而淘宝则是必须先登录才能将商品添加到购物车当中,就用户体验来说,京东的购物车模块用户体验更好。 我们看下京东购物车,如下图所示,可以看到域名是cart.jd.com,这与商品详情页面的ite原创 2017-06-11 20:17:59 · 2539 阅读 · 0 评论 -
学习淘淘商城第九十五课(jsonp的原理及两种实现方式)
首先,说下什么是跨域?有以下两种:1.域名不同2.域名相同,端口不同 接着说下什么是jsonp? jsonp不是新技术,它只是一种解决方案,使用js的特性绕过跨域请求,利用的特性便是js可以跨域加载js文件!!举个非常常见的例子,我们在html头部一般都会引入很多js,甚至我们直接引用在线的js,比如我们引用官方网站的jQuery路径加载进来也是可以的。JQ原创 2017-06-11 16:55:32 · 2057 阅读 · 1 评论 -
学习淘淘商城第九十四课(js跨域分析)
上节课我们一起学习了登录,登录的时候我们把token写到了cookie当中,登录成功后,我们查看Cookie信息,如下图所示,发现是有token信息的。 我们回到登录页面,可以看到token信息。如下图所示。可以看到与淘淘商城首页的token信息是完全一致的。 不同的端口就已经属于跨域了,而我们就是要解决跨域问题。 首先原创 2017-06-11 14:48:42 · 1809 阅读 · 0 评论 -
学习淘淘商城第九十三课(用户登录的实现)
我们来看下login.jsp页面,如下图所示。可以看到标签中并没有定义onclick方法,只是定义了个id="loginsubmit",那么onclick事件在哪儿定义了呢? 其实是在js当中,如下图所示,页面加载完后就给id为loginsubmit的按钮添加了onclick事件,当点击这个按钮的时候,会触发LOGIN对象的login方法,login方法要先检查用户名原创 2017-06-11 11:48:09 · 1871 阅读 · 0 评论 -
学习淘淘商城第九十二课(用户注册页面实现)
首先,我们还是先看一下注册页面,如下图所示。 上图箭头指向的链接在register.jsp的代码当中的位置如下图所示。 由于我现在对css不是很熟悉,注册页面对输入合法性的校验就不像正规网站那种校验方式了,我只是在点击"立即注册"的时候统一做下校验,如果不合法就弹出一个alert警告框(注意:实际工作中是绝不允许用alert来提示校验信息的,cs原创 2017-06-11 09:44:34 · 1476 阅读 · 0 评论 -
学习淘淘商城第九十一课(单点登录、注册页面展示)
首先我们将单点登录系统所需要的静态资源文件放到taotao-sso-web工程的WEB-INF目录下,静态资源文件大家可以到:这个地址进行下载。 由于web.xml文件当中配置的拦截形式是"/",这也就意味着它会拦截所有的请求,包括我们的静态资源文件,我们直接访问的话就会报404(找不到资源的错误),可能有些小白跟我一样,对拦截请求不明白,之所以有拦截器就是为了系统的安原创 2017-06-10 22:17:05 · 1813 阅读 · 2 评论 -
学习淘淘商城第九十课(单点登录之安全退出)
首先还是先看下接口文档,所谓的安全退出其实就是将token从redis当中删除,由于现在跨域还没学,参数中的callback就先不用。 先在UserService接口类中添加安全退出的接口,如下图所示。 添加的代码如下://安全退出TaotaoResult logout(String token); 下面我们到UserSer原创 2017-06-09 15:28:11 · 3358 阅读 · 4 评论 -
学习淘淘商城第八十九课(单点登录之通过token获取用户信息)
首先还是看接口文档关于通过token获取用户信息的说明,如下图所示。 看了说明文档我们便知道该怎么做了,在taotao-sso-interface工程的UserService接口类中添加一个接口,如下图所示。 添加的接口代码如下://通过token获取用户信息TaotaoResult getUserByToken(String t原创 2017-06-09 14:50:54 · 4832 阅读 · 1 评论 -
学习淘淘商城第八十八课(单点登录用户登录--Controller层及测试)
首先看接口文档,如下图所示 我们需要把token保存到cookie当中,为了方便的操作cookie,我们特意封装了一个工具类,由于该工具类有可能被多个服务使用,因此我们最好把该工具类放到utils。如下图所示。 可以看到当前引入是有错误的,要解决这个问题就要在taotao-common工程添加对servlet-api的依赖,添加完依赖之后Coo原创 2017-06-08 20:30:11 · 2170 阅读 · 2 评论 -
学习淘淘商城第八十七课(单点登录用户登录流程分析及用户登录Service层)
我们先来看下登录流程图,如下图所示。 用户登录涉及到三个部分,第一部分是淘淘商城前台工程,第二部分是单点登录服务,第三部分是Redis服务。具体流程下图已经说的很明白了,我就不再啰嗦一遍了,相比于传统的登录,我们没有把用户登录信息存在session当中,而是存放到了Redis当中。 下面我们来实现服务端登录业务 首先是在UserServ原创 2017-06-08 16:27:50 · 2997 阅读 · 0 评论 -
学习淘淘商城第八十六课(单点登录用户注册Controller层实现及测试)
上节课我们一起学习了用户注册Service层的实现,这节课我们实现Controller层并且测试接口是否好用。 在taotao-sso-web工程的UserController类添加如下图所示标注的代码。 添加的代码如下(GET请求不需要在RequestMapping中指定,但是POST就需要指定): @RequestMapping(value原创 2017-06-08 14:22:55 · 2426 阅读 · 0 评论 -
学习淘淘商城第八十五课(单点登录用户注册--Service层)
首先我们还是看关于单点登录手册中关于注册的说明,如下图所示。请求方式是POST类型,URL为我们明确指定好了,参数有四个,需要校验完合法性之后再提交。 下面我们先在taotao-sso-interface工程添加注册接口,如下图所示 接口内容如下://注册TaotaoResult register(TbUser tbUser);原创 2017-06-07 22:57:04 · 1641 阅读 · 1 评论 -
学习淘淘商城第八十四课(单点登录检查数据是否可用---Controller层及测试)
首先我们要确保taotao-sso-web工程依赖了taotao-sso-interface工程以及是否依赖了jackson相关包(用来将对象转为json的),查看"Maven Dependencies"下的包,如果有taotao-sso-interface以及下图圈住的三个jackson包说明已经依赖好了。如果没有则要添加对它的依赖。 下面我们添加对dubbo服务的引原创 2017-06-03 12:13:53 · 1857 阅读 · 1 评论 -
学习淘淘商城第八十三课(单点登录接口文档分析及Service层接口开发并发布)
在工作当中,开发文档是我们开发人员最重要的开发指南, 对开发文档一定要认真研读,不可错过任何重要信息,我们现在学单点登录(SSO)也需要学习下开发文档。淘淘商城开发文档大家可以到http://download.csdn.net/detail/u012453843/9859122这个地址进行下载。 我们先来看文档的第一个接口(注册接口):检查数据是否可用,如下图所示。文档中明确给出原创 2017-06-02 23:36:49 · 2296 阅读 · 0 评论 -
学习淘淘商城第八十二课(SSO工程搭建)
首先,我们还是再看一下淘淘商城的系统架构,到目前为止,我们已经做了后台管理系统、商城门户、搜索系统、商品服务、内容服务、搜索服务、缓存redis、Solr服务、索引库、消息队列ActiveMQ。还未实现的部分是会员系统、订单系统、单点登录服务、订单服务、持久层。我们这节要搭建的工程便是会员系统和单点登录服务。 下面我们便开始搭建工程,首先来搭建单点登录服务系统taota原创 2017-05-31 23:57:41 · 2073 阅读 · 0 评论 -
学习淘淘商城第八十一课(SSO 系统分析)
一、什么是SSO系统? SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 二、为什么要有单点登录系统? 2.1 传统的登录实现方式如下图所示。原创 2017-05-31 22:11:15 · 1814 阅读 · 1 评论 -
学习淘淘商城第八十课(安装Keepalived)
1.新建一台虚拟机 大家可以参考http://blog.csdn.net/u012453843/article/details/68947589这篇博客进行学习。 2.配置静态IP并且要能上网 大家可以参考http://blog.csdn.net/u012453843/article/details/52839105这篇博客进行学习。原创 2017-05-30 11:44:36 · 1377 阅读 · 1 评论 -
学习淘淘商城第七十九课(LVS+Nginx负载均衡----下篇)
上节课我们一起学习了LVS+Nginx负载均衡DR模式的环境搭建,这节我们一起学习下LVS四层+Nginx七层负载均衡环境的搭建。 需求:lvs采用DR模式基本上没有性能瓶颈,用户请求输入至lvs经过负载转发到后台服务上,通过后台服务输出响应给用户。nginx的负载性能远没有lvs好,lvs四层+nginx七层负载的好处是最前端是lvs接收请求进行负载转发,由多个nginx共同完成原创 2017-05-29 19:44:35 · 1411 阅读 · 0 评论 -
学习淘淘商城第七十八课(LVS+Nginx负载均衡(包括两种开机启动方法)----中篇)
上节课我们一起了解了一下LVS+Nginx负载均衡的理论知识,这节课我们一起学习下如何搭建LVS-DR模式的负载均衡环境。 首先我们还是看一下LVS-DR负载均衡图,如下所示。 我们用三台虚拟机,一台虚拟机安装lvs-director,另外两台服务器安装nginx。并且我们要配置一个虚拟IP供外界用户访问。 下面我们便来安装原创 2017-05-28 00:05:15 · 1680 阅读 · 0 评论 -
学习淘淘商城第七十七课(LVS+Nginx负载均衡---上篇)
一、课程目标掌握什么是负载均衡及负载均衡的作用和意义。了解lvs负载均衡的三种模式。了解lvs-DR负载均衡部署方法。掌握nginx实现负载均衡的方法。掌握lvs+nginx负载均衡拓扑结构。二、负载均衡方案2.1 什么是负载均衡? 一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但原创 2017-05-26 22:42:21 · 1713 阅读 · 0 评论 -
学习淘淘商城第七十六课(nginx负载均衡)
上节我们一起学习了nginx反向代理,这节课我们一起学习下nginx的负载均衡。 再新建一台虚拟机,参照上节课安装tomcat,然后我们在nginx配置文件中配置下负载均衡,只需在upstream Tomcat1中添加一行即可,如下。server 192.168.156.34:8080; 添加完如下图(不配置任何负载均衡策略的话,默认是轮询策略,就是机会完全均分原创 2017-05-24 21:35:48 · 1454 阅读 · 2 评论 -
学习淘淘商城第七十四课(学习nginx配置及举例使用端口、域名来区分不同的虚拟主机)
上节课我们一起学习了nginx的安装,这节课我们简单学习下nginx的配置文件。 nginx的配置文件所在的位置如下图所示。 我们使用vi nginx.conf命令打开nginx.conf配置文件, 接着往下看配置文件,如下图所示。 下面我们举例使用端口来区分虚拟主机,为了方便的操作nginix.原创 2017-05-21 12:25:32 · 1703 阅读 · 0 评论 -
学习淘淘商城第七十三课(Nginx基础)
第一:什么是Nginx? Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。第二:Nginx的应用场景是什么?1、http服务器。Nginx是一个http服务可以独立提供http服务。原创 2017-05-20 22:31:10 · 2998 阅读 · 3 评论 -
学习淘淘商城第七十二课(网页静态化-业务逻辑及测试)
首先,需要在taotao-item-web工程添加对activemq的依赖,如下图所示。 依赖代码如下: org.apache.activemq activemq-all 下面我们需要把taotao-search-web工程下的applicationContext-activemq.xml文件拷贝到taotao-item-web工程原创 2017-05-19 23:01:42 · 1505 阅读 · 1 评论 -
学习淘淘商城第七十一课(网页静态化-freemarker模板改造)
上节课我们一起学习了网页静态化的方案,这节课我们一起学习下freemarker模板改造。 首先,由于要用到消息队列,因此需要在taotao-item-web工程当中添加activemq的依赖,如下图所示。 依赖代码如下: org.apache.activemq activemq-all 接着,我们需要把原来属于j原创 2017-05-19 00:59:30 · 1963 阅读 · 0 评论 -
学习淘淘商城第七十课(网页静态化方案分析)
我们要做到网页静态化,那么需要有一套方案来操作。 首先是静态网页的名称,要知道,每个商品的详情页面都是不一样的,因此我们最好把商品的ID加".html"作为静态网页的名称。 接着,静态网页的生成时机是什么?其中一种方案是当用户点击商品详情的时候生成静态页面,但是这种情况是有严重问题的,当并发量高时,第一个人点击商品详情,然后去生成静态页面,有可能静态页面在生成的原创 2017-05-18 23:39:24 · 1563 阅读 · 0 评论 -
学习淘淘商城第六十九课(spring与freemarker的整合)
spring要与freemarker整合的话,需要两个包,一个是freemarker的jar包,另一个是spriing-context-support的Jar包,需要在taotao-item-web工程中确保对两个包的依赖,如下所示。 org.springframework spring-context-support org.freemarker freemark原创 2017-05-18 22:00:59 · 1189 阅读 · 0 评论 -
学习淘淘商城第六十八课(freemarker语法)
要学习freemarker就要学习它的语法,下面我们便依次来学习freemarker的常用语法。第一个语法:Pojo的使用 首先创建一个Pojo类Student,如下图所示 Pojo类代码如下:package com.taotao.freemarker;public class Student { private int id;原创 2017-05-16 00:03:02 · 1707 阅读 · 4 评论 -
学习淘淘商城第六十七课(freemarker入门)
上节课我们一起学习了如何在查询商品详情时添加缓存,这节课我们一起来学习下freemaker。 我们都知道,缓存可以提高查询性能,但是当用户访问量很大时,单纯依靠缓存已经不行了,为什么这么说呢?这是因为我们在访问商品详情的时候由于每款商品都不一样,因此每款商品的详情页都是动态生成的,每查看一次,页面就要重新渲染一次,渲染的过程是消耗时间的,当用户访问量很大时,这便在一定程度上降低了原创 2017-05-15 23:04:27 · 1761 阅读 · 5 评论 -
学习淘淘商城第十二课(发布dubbo服务)
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。 单一工程中spring的配置如下(不用Dubbo的情况) 用Dubbo的话,分为发布服务和调用服务,发布服务原创 2017-03-26 01:03:54 · 6766 阅读 · 4 评论