- 博客(304)
- 收藏
- 关注
转载 Java泛型
对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、 java泛型详解概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?复制代码泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传...
2019-10-11 23:21:45
604
转载 redis分布式锁实现秒杀
基于redis分布式锁实现“秒杀”最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。业务场景所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。一些...
2019-10-10 12:16:19
648
原创 tomcat热部署、系统部署演示
tomcat热部署热部署方法一:我们要登录tomcat管理页面,但需要进行一些配置,那么怎么配置呢?tomcat首页可以给我们一些提示,我们点击tomcat首页的"Manager App"。这时会弹出一个对话框,让我们输入用户名和密码,我们当然这时不知道,于是我们点击"取消"。点击"取消"后,页面的错误信息给了我们一些提示,告诉我们应该怎么做才能访问tomcat后台管理页面。它提到了,我...
2019-09-04 23:23:04
759
原创 定时任务-Quartz、Mycat简单入门、Linux下安装MySQL、Linux下安装MyCAT、Mycat的数据库分片、Mycat读写分离
表现层:页面 后台管理系统、商城门户、搜索系统、订单系统、商品详情系统、购物车系统中间件:dubbo 系统之间的通信,服务的统计,rpc协议远程过程调用 同步通信服务层:实现具体的业务逻辑 商品服务、内容服务、单点登录服务、订单服务、搜索服务(solr服务solrj httpclient 从索引库中去查询的,目录需要自己制定)消息队列:异步通信(系统解耦)加缓存redis中间件mycat...
2019-09-04 22:49:45
990
原创 订单系统服务端和客户端工程搭建、利用拦截器实现登录功能及订单确认页面展示、生成订单
订单系统服务端和客户端工程搭建首先我们还是先看一眼淘淘商城的系统架构,如下图所示,可以看到订单模块是单独的模块,有服务端还有客户端,服务端负责存储订单,客户端负责展示订单。下面我们便来搭建订单服务,点击File---->New----->Other…如下图所示。选择"Maven Project",然后点击"Next",如下图所示。勾选最上面的那个复选框,然后点击"Next",如...
2019-09-04 16:40:32
1268
原创 使用拦截器实现用户登录
当用户下订单时需要用户登录,使用拦截器实现用户登录。登录成功后跳转到用户要访问的页面。门户系统整合sso在门户系统点击登录连接跳转到登录页面。登录成功后,跳转到门户系统的首页,在门户系统中需要从cookie中 把token取出来。所以必须在登录成功后把token写入cookie。并且cookie的值必须在系统之间能共享。Cookie共享:1、Domain:必须是相同的。例如有多个域名:...
2019-09-04 11:35:46
1269
原创 购物车实现分析及工程搭建、商品详情页面对加入购物车进行改造、添加购物车、展示购物车列表、修改购物车商品数量、删除购物车商品及购物车总结
购物车实现分析及工程搭建关于购物车模块,京东和淘宝并不一样,京东允许用户在没有登录的情况下就使用购物车,而且加到购物车里面的商品可以一直保存着(其实是放到了Cookie当中,如果清空了Cookie也就清空购物车了)。而淘宝则是必须先登录才能将商品添加到购物车当中,就用户体验来说,京东的购物车模块用户体验更好。我们看下京东购物车,如下图所示,可以看到域名是cart.jd.com,这与商品详情页面...
2019-09-04 10:34:24
3833
原创 js跨域分析、jsonp的原理及两种实现方式
js跨域分析上节课我们一起学习了登录,登录的时候我们把token写到了cookie当中,登录成功后,我们查看Cookie信息,如下图所示,发现是有token信息的。我们回到登录页面,可以看到token信息。如下图所示。可以看到与淘淘商城首页的token信息是完全一致的。不同的端口就已经属于跨域了,而我们就是要解决跨域问题。首先我们修改下淘淘商城首页的登录和注册链接地址,因为目前这两个链接地...
2019-09-03 23:51:35
332
原创 单点登录之通过token获取用户信息、单点登录之安全退出、单点登录注册页面展示、用户注册页面实现、用户登录的实现
单点登录之通过token获取用户信息首先还是看接口文档关于通过token获取用户信息的说明看了说明文档我们便知道该怎么做了,在taotao-sso-interface工程的UserService接口类中添加一个接口下面我们到UserServiceImpl类中实现getUserByToken方法Service层写完后,我们再来完成Controller层,在UserController中添加...
2019-09-03 22:26:39
4653
原创 单点登录用户注册Service层、单点登录用户注册Controller层实现及测试、单点登录用户登录流程分析及用户登录Service层、单点登录用户登录Controller层及测试
单点登录用户注册–Service层首先我们还是看关于单点登录手册中关于注册的说明,如下图所示。请求方式是POST类型,URL为我们明确指定好了,参数有四个,需要校验完合法性之后再提交。下面我们先在taotao-sso-interface工程添加注册接口,下面实现接口, UserServiceImpl.java类所有代码单点登录用户注册Controller层实现及测试上节课我们一起学习了...
2019-09-03 21:28:30
1364
原创 SSO 系统分析、SSO工程搭建、单点登录接口文档分析及Service层接口开发并发布、单点登录检查数据是否可用-Controller层及测试
SSO 系统分析一、什么是SSO系统?SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。二、为什么要有单点登录系统?2.1 传统的登录实现方式登陆后—》session《—访问别的页面这种登...
2019-09-03 20:29:46
711
原创 LVS+Nginx负载均衡、LVS高可用环境搭建、安装Keepalived
上节课我们一起学习了LVS+Nginx负载均衡DR模式的环境搭建,这节我们一起学习下LVS四层+Nginx七层负载均衡环境的搭建和LVS高可用环境搭建。LVS四层+Nginx七层负载均衡环境的搭建 需求:lvs采用DR模式基本上没有性能瓶颈,用户请求输入至lvs经过负载转发到后台服务上,通过后台服务输出响应给用户。nginx的负载性能远没有lvs好,lvs四层+nginx七层负载的好处是最...
2019-09-03 17:26:32
478
原创 Nginx基础、学习nginx配置及举例使用端口或域名来区分不同的虚拟主机、nginx配置反向代理、nginx负载均衡、LVS+Nginx负载均衡
Nginx基础域名访问系统目前访问系统存在的问题目前访问后台系统:http://localhost:8081/目前访问首页系统:http://localhost:8082/目前访问搜索结果页面:http://localhost:8085在搜索结果页面search.jsp中,代码中写死了其他的系统的全路径。问题:1.localhost只能访问本地,不能访问其他的服务器;系统应...
2019-09-03 13:00:36
1986
原创 网页静态化-freemarker模板改造、网页静态化-业务逻辑及测试
网页静态化-freemarker模板改造上节课我们一起学习了网页静态化的方案,这节课我们一起学习下freemarker模板改造。我们需要把原来属于jsp下面的文件都改造成静态网页,把taotao-item-web工程下的jsp目录下的所有文件都放到ftl目录下,如下图所示。先修改commons目录下的shortcut.jsp,将它的名字改为shortcut.ftl,然后将文件头部的<%...
2019-09-03 12:37:10
826
原创 freemarker入门、freemarker语法、spring与freemarker的整合、网页静态化方案分析
freemarker入门上节课我们一起学习了如何在查询商品详情时添加缓存,这节课我们一起来学习下freemarker。我们都知道,缓存可以提高查询性能,但是当用户访问量很大时,单纯依靠缓存已经不行了,为什么这么说呢?这是因为我们在访问商品详情的时候由于每款商品都不一样,因此每款商品的详情页都是动态生成的,每查看一次,页面就要重新渲染一次,渲染的过程是消耗时间的,当用户访问量很大时,这便在一定程...
2019-09-03 11:51:09
391
原创 查询商品详情添加缓存分析、商品详情缓存的实现、Mac下安装Redis及Redis Desktop Manager
查询商品详情添加缓存分析上节课我们一起学习了商品详情展示,这节课我们一起学习下如何添加缓存。因为查询商品详情涉及到查询数据库,当网站访问量很大时,查询商品详情都去查询数据库的话,数据库的压力是难以承受的,为了解决这个问题就要引入缓存。但是引入缓存又有个问题需要考虑,那就是缓存资源是非常有限的,如果我们把大量的商品详情信息都放到缓存当中的话,缓存的压力是非常大的。我们知道,商品是分热点商品和冷门...
2019-09-03 10:22:04
643
原创 搭建商品详情页面工程、实现商品详情页面展示
搭建商品详情页面工程其实商品详情与搜索都是独立的工程,我们以京东为例,当我们搜索到某商品后,点击那个商品链接,进入商品详情页面时,可以在地址栏看到"item.jd.com",很明显不是search工程了,这是专门用来展示商品详情的工程。我们也需要这么一个展示商品详情的工程,现在我们就新建一个taotao-item-web工程,与我们建taotao-search-web工程一样,新建一个Mave...
2019-09-02 22:11:33
1196
原创 添加商品同步到索引库以及消息机制测试
我们在添加商品时需要与索引库进行同步,这样每添加一个商品索引库就多一个文档,这样做的好处是不用把数据库中的所有数据进行同步,大大提高了性能节约了时间。我们要做的是当添加商品的时候发送activemq消息,至于发送什么类型的activemq消息则要根据实际应用场景来定,由于添加商品涉及到同步缓存、同步索引库、添加静态页面等操作,也就是一个消息被多个消费者所消费,显然发送topic消息更为合适。要...
2019-09-02 18:18:28
538
原创 为何引入ActiveMQ、ActiveMQ的安装、ActiveMQ发送queue消息和接收Queue消息、ActiveMQ发送topic消息和接收topic消息、ActiveMQ持久化Topic消息
为何引入ActiveMQ我们在学习Solr索引的时候,每当添加一个商品后,都要把数据库中的数据全部重新导入到索引库,特别消耗性能和时间,这显然是我们所不能忍受的,这就需要优化我们的方案。最好是在商品添加的时候就单独将该商品同步到索引库,这样便简单快捷地实现了数据库与索引库的同步。摆在我们面前的方案有三个:方案一:在taotao-manager中,添加商品的业务逻辑中,添加一段同步索引库的业务...
2019-09-02 18:05:01
613
原创 全局异常处理、使用JMail来发送邮件、Httpclient
全局异常处理我们知道项目运行过程中肯定会出现一些问题,当出现异常的时候,我们往往在Controller层捕获并处理了,但这样做不利于我们统一管理。我们这节课便来学习下全局异常处理器,让它来管理项目所有的异常。当请求过来时先经过前端控制器,前端控制器将请求交给Controller,Controller将请求交给Service,Service将请求交给Dao,当Dao处理完请求之后,将处理结果返回...
2019-09-02 11:38:04
1058
原创 首页跳转到搜索页面及搜索实现分析、使用SolrJ查询索引库、搜索服务Dao实现、搜索功能Service实现、商品搜索功能Controller实现、搜索功能测试、使用SolrJ管理Solr集群、切换到集
首页跳转到搜索页面及搜索实现分析上节课我们一起学习了将数据从数据库导入到索引库,这节课我们一起学习下首页跳转到搜索页面。我们要访问taotao-portal-web工程就要先启动redis服务(大家根据自己使用的情况启动,使用的是单机版就启动单机版服务器,使用的是集群就启动集群版服务器)。启动好taotao-portal-web工程之后,我们访问淘淘商城首页,如下图所示。该首页对应的后台代...
2019-09-01 12:18:04
974
原创 导入商品数据到索引库-dao层、使用solrj来测试索引库、导入商品数据-service层、实现从数据库导入数据到索引库
导入商品数据到索引库-dao层我们先来看看我们要导入数据的sql语句并且查看查询结果。select a.id,a.title,a.sell_point,a.price,a.image,b.name item_category_name,c.item_descfrom tb_item aleft join tb_item_cat b on a.cid=b.idleft join tb_i...
2019-08-31 18:44:55
380
原创 搜索服务搭建、搜索系统搭建
首先,我们还是要先看下淘淘商城的整体架构图,如下图所示,我们已经写完了后台管理系统、商品服务、商城门户、内容服务,现在需要搭建的是搜索系统和搜索服务。搜索服务搭建可以参考taotao-manager创建。Taotao-search(聚合工程pom)|–taotao-search-interface(jar)|–taotao-search-Service(war)第一步:点击File-...
2019-08-31 13:11:06
1275
原创 中文分析器IK-Analyzer的使用
中文分析器IK-Analyzer的使用在Solr中默认是没有中文分析器的,需要手工配置,配置一个FieldType,在FieldType中指定中文分析器。另外,Solr中的字段必须先定义,后使用。下面分步骤进行操作第一步:将IK-Analyzer的压缩包上传到solr服务器上。如下所示。[root@solr-server software]# ll总用量 335576drwxr-xr-...
2019-08-30 14:16:31
1559
原创 Solr的安装、SolrCloud初识、Solr集群搭建
Solr的安装Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同...
2019-08-30 13:35:35
493
原创 Redis的安装、Jedis的使用、Redis集群搭建、Redis集群测试、使用Spring来管理Redis单机版和集群版、在业务逻辑中添加缓存
Redis的安装第一步:下载Redis安装版本 这里需要说明一点的是,新版的redis不够稳定,建议大家还是使用旧版本的redis,比如3.0.0版本。大家可以到http://download.csdn.net/detail/u012453843/9820041这个地址下载。第二步:安装gcc环境由于redis是由C语言编写的,它的运行需要C环境,因此我们需要先安装gcc。安装命令...
2019-08-29 23:09:13
288
原创 门户系统的搭建、显示商城首页、内容管理系统的实现、首页轮播图展示实现
8.28~8.291、门户系统的搭建2、显示商城首页3、内容管理系统的实现a) 内容分类管理b) 内容管理4、首页的轮播图展示实现1、门户系统的搭建门户属于前台系统 :面向广大的互联网网民。后台系统:面向维护人员,入住的商家,使用。我们目前只是完成了后台管理系统和商品服务,还有很多没有实现,淘淘商城首页的展示需要用到商城门户工程和内容服务工程。这节我们便学习一下商城门户的搭建。...
2019-08-29 21:00:14
2669
原创 CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除
CentOS7设置静态IP而且还可以上网192.168.173.148但是用mac的终端远程连接到CentOS的时候,由于家里和学校IP不同,虚拟机的IP也会变化,每次还要重新查看,并且之后配置集群什么的也会出现问题,所以需要CentOS设置为固定IP。如果虚拟机使用桥接的方式,那么很多与ip相关的服务都会出现问题,所以我们希望使用nat模式,为了防止再次启动系统的时候网络IP发生变化,因此设...
2019-08-27 12:30:31
1137
转载 牛客网Java面试题
Java开发校招面试考点汇总(附面试题和答案)牛妹 牛客网 7月17日Java后台开发面试考点汇总以下不作为Java学习路径,只是汇总的校招Java后台开发面试考点(因为还有笔试考点,后面结合在一起给大家学习路径),后续会为大家更新10w+字数的Java校招面试题库,还有其他岗位的相关题库和资料,想要什么岗位的可以留言哦~本篇根据各个公司的面试问的问题的大数据进行总结,后面还会更新面试...
2019-08-24 08:50:15
986
原创 商品后台页面整合显示、商品列表展示功能EasyUIDataGridjson分页功能PageHelper
第二天的内容主要是四个部分:1)创建数据库;2)使用mybatis逆向工程生成代码;3)ssm框架整合;4)商品列表功能的实现。1、创建数据库。打开mysql之后,创建一个新的数据库,名称叫taotao。然后选中该数据库,执行教程给的sql文件,创建对应的表和数据。2、使用mybatis逆向工程生成代码使用mybatis逆向工程生成java代码,包括了pojo、mapper接口和xml映...
2019-08-20 22:26:05
1947
原创 IDEAmaven工程中使用MyBatis逆向工程生成实体类、接口、xml文件
在IDEAmaven工程中使用MyBatis逆向工程生成实体类、接口、xml文件。步骤一:在工程中找到maven的配置文件pom.xml,在pulgins节点中增加如下内容,即增加maven中对mybatis-generator的插件支持。新增内容如下:<!--MyBatis自动生成工具插件--> <plugin> ...
2019-08-20 22:19:01
1200
原创 Linux系统上安装tomcat、在Linux部署Dubbo监控中心monitor
Linux系统上安装tomcat本文将详细讲解在Linux系统上如何安装tomcat,tomcat是没有32位和64位之分的。下载tomcat官网地址:http://tomcat.apache.org/whichversion.html首先我们肯定要先下载tomcat安装程序,我下载的是:安装tomcat上传tomcat的安装文件到Linux之前我在Linux系统上安装JDK这篇文章...
2019-08-20 22:17:38
1134
1
原创 SSM总结
SSMSpringSpringMVCMyBatisSpring核心思想:IOC控制反转;AOP面向切面Spring默认是以单例形式管理Bean介绍:Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,...
2019-08-19 22:49:40
367
原创 使用dubbo+zookeeper启动ssm项目
后台系统所用的技术框架:Spring + SpringMVC + Mybatis+dubbo前端:EasyUI数据库:mysql系统间通信由于淘淘商城是基于SOA的架构,表现层和服务层是不同的工程。所以要实现商品列表查询需要两个系统之间进行通信。如何实现远程通信?1、使用WebService:效率不高,它是基于soap协议(http+xml)。项目中不推荐使用。2、使用restfu...
2019-08-18 23:39:10
1324
原创 MySQL Workbench怎么把sql文件导入mysql
目录1、打开MySQL Workbench并连接MySQL2、新建数据库3、导入SQL文件4、执行SQL5、刷新数据库,查看是否导入成功其他:步骤:1、打开MySQL Workbench并连接MySQL依次点击:电脑的左下角的开始,MySQL,MySQL Workbench 8.0 CE (或其他版本)打开MySQL Workbench 。输入密码连接。2、新建数据库然后...
2019-08-18 14:13:10
6205
原创 Mac安装VMware fusion 11安装Linux CentOS 7
操作系统操作系统是安装在PC上的第一个软件, 其他应用软件必须等待OS安装之后才能安装.Win(Windows): win95/97/xp/7/vista/10——付费Mac(Macintosh): 免费升级Linux: 内核+(系统软件+应用软件)——免费 开源Linux操作系统是指: 内核+ 应用内核:系统软件——负责管理CPU、内存、文件系统、进程、外设、网络等计算机资源, 同...
2019-08-18 13:48:34
5498
2
原创 在mac 下查看端口占用情况并杀死该进程
tomcat启动失败Port required by Tomcat v8.0 Server at localhost is already in use. The server may already be running in another process, or a system process may be using the port. To start this server …端...
2019-08-14 18:22:14
840
原创 IntelliJ IDEA 构建maven多模块工程项目(实践淘淘商城第一课)
一 项目工程目录二 创建父工程三 创建公共工具类三 创建开发项目四 创建开发项目子模块五 运行项目鉴于最近学习一个分布式项目的开发,讲一下关于使用IntelliJ IDEA基于Maven创建多模块项目的实际开发,可能有不合适的地方,但是项目是可以跑通的,也请有不足之处,都提出来,一起讨论下。本文以a b c 三个模块为例来搭建项目,以达到通俗易懂的初衷模块a —– 基模块,就是人们...
2019-08-14 18:20:44
480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人