自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 面试题spring的ioc和aop的原理

1、IoC全称Inverse of Control(反向控制戒控制反转),程序之间解耦在类和类之间存在控制权,控制权指的是对象的创建和使用比如有类A和类B,我们之前的做法是在A中调用B,那么控制权就在A中,这样做的耦合度较高,  如果修改了B,A也要做相应修改。引入Spring框架后,控制权由spring容器来负责。当A想使用B时,需要由Spirng容器通过 配置文件迚行注入。

2016-08-31 22:27:44 27571 1

转载 Redis事务介绍

概述相信学过MySQL等其他数据库的同学对事务这个词都不陌生,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行。为什么会有这样的需求呢?看看下面的场景:微博是一个弱关系型社交网络,用户之间有关注和被关注两种关系,比如两个用户A和B,如果A关注B,则B的粉丝中就应该有A。关注这个动作需要两个步骤完成:在A的关注者中添加B;在B的粉丝中添加A。 这两个动作要么都执行成功,

2016-08-29 17:38:31 425

转载 MQ与Spring的整合

ActiveMQ与Spring的集成首先将ActiveMQ如下的jar包导入项目中。配置activemq的spring配置文件<beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.apache.org/schema/core"

2016-08-29 17:06:02 4014

转载 ActiveMQ基本配置与示例演示

一、下载ActiveMQ去官方网站下载: http://activemq.apache.org/二、运行ActiveMQ将apache-activemq-5.11.1-bin.zip解压,由于本系统是32位,所以进入apache-activemq-5.11.1\bin\win32目录。1、安装InstallService.bat,如果出现下图,也许是你电脑已经安装过

2016-08-29 16:48:50 1798

原创 hessian远程调用的使用

一.      远程通讯协议的基本原理网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http 、 tcp 、 udp 等等, http 、 tcp 、 udp 都是在基于 Socket 概念上为某类应用场景而扩展出的传输协议,网络 IO ,主要有 bio 、 nio 、 aio 三种方式,所有的分布式应用通讯都基于这个

2016-08-27 15:33:03 2469

原创 java分布式都有哪些知识点

分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。我试着列一下相关知识吧。网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括:OSI模型的7层TCP/IP,DNS,NATHTTP,SPDY/HTTP2Telnet网络编程,是通过程序在多个主机之间通信。包括:Socket多线程非阻塞IO网络框架Net

2016-08-26 15:00:03 6291

原创 HashSet和HashMap的关系

public class HashSet extends AbstractSet implements Set, Cloneable, java.io.Serializable { static final long serialVersionUID = -5024744406713321676L; private transient Ha

2016-08-26 10:35:16 478

原创 Mybatis使用pageHelper分页插件原理

首先在Mybatis的配置文件 SqlMapConfig.xml中配置PageHelper插件xmlversion="1.0"encoding="UTF-8"?>DOCTYPEconfiguration            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"            "htt

2016-08-25 16:24:55 40540 3

转载 Java集合---ConcurrentHashMap原理分析

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅

2016-08-25 15:04:02 499

原创 HashMap与ConcurrentHashMap的区别

从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable

2016-08-25 14:37:59 609

转载 Hessian与Webservice的区别

Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信。Hessian的初衷就是支持动态类型,格式紧凑,跨语言。Hessian是使用自己的序列化机制实现的

2016-08-25 14:12:16 5192

原创 redis配置主从模式

redis可以使用主从模式和读写分离,就像mysql那样主从模式配置:1、首先在主机master上,修改配置文件redis.conf开启密码功能 :requirepass  密码开启密码后登录时,可以使用usr/local/redis/bin/redis-cli -a 密码直接进入,也可以不加-a 密码,这样也能进去,但是不能操作,需要auth 密码授权一下才可以操作。2、需要

2016-08-23 22:55:45 424

转载 数据库为什么需要锁机制?有哪些锁机制?

【为什么要锁】    数据库是一个多用户使用的共享资源,比如一个用户表t_user,两个浏览器前面的人登录了同个一个账号,把电话号码改了。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性(脏读,不可重复读,幻读等),可能产生死锁。为了解决这个问题,加锁是一个非常重要的技术,对实现数据库并发控

2016-08-23 17:57:59 1642

原创 session跨域共享

1.传统的session跨域共享我们通过使用配置tomcat的conf/server.xml文件来实现一个局域网内多个tomcat进行session共享,多个tomcat之间通过相互广播的方式,各自复制一份session存储,这样的局限性就要求不能有太多的tomcat间session共享,一般5台左右,性能还可以保证,但是如果有100台tomcat呢,大家想一想,这100台都存储有一份se

2016-08-23 17:54:31 4475

原创 cookie不同系统间共享

1.设置cookie的使用范围(域名+路径) cookie.setDomain(".baidu.com");//表示在baidu下的二级域名之间都可以共享cookie.setPath("/"); //设置成根目录如果是测试用的localhost则不用设置domain,只要设置path就可以实现系统间共享2.应该还用一个方法可以实现,使用jsonp来通过ajax实现,而且这种

2016-08-23 16:52:16 4338

原创 redis如何分配哈希槽

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 取模,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

2016-08-23 13:54:16 5295 3

原创 redis和memcache的区别

1.redis支持的类型有String,hash,list,set,sortset2.redis支持value单个值得最大值为1GB,memcache是1M3.redis支持持久化数据,把数据按照快照持久化和精细持久化AOF在硬盘中存储数据。4.可以设置主从配置。5.memcache完全是基于内存的,不支持持久化,所以它的速度要比redis快一点。

2016-08-23 11:36:07 292

转载 乐观锁和悲观锁的区别

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人

2016-08-23 10:01:31 337

转载 大型网站架构之分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。本次分享大纲消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐)资料本次分享总结一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式

2016-08-22 11:18:47 591

原创 生成随机数的方法

随机数一般使用在图片上传到服务器上,改变图片文件名(随机生成);随机数还会用在,生成token时使用,可以做到session跨域共享 (保存在redis中)随机数生成方法:1.uuid生成随机数String s = UUID.randomUUID().toString();s =  s.substring(0,8)+s.substring(9,13)+s.substring(1

2016-08-21 21:23:21 1139

转载 cookie和session工作机制和使用场合详解

虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。    一、术语session     在我的经验里,session这个词被滥用的程度大概仅次于transacti

2016-08-21 18:40:08 3352 1

原创 springmvc controller间重定向带参数跳转的解决方案

1. 需求背景    需求:spring MVC框架controller间跳转,需重定向。有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示。传统的:可以通过在redirect:select.do?id=""&name="";这样拼接来实现,也可以实现,但是如果参数中有中文,就会出现问题。RedirectAttributesR

2016-08-20 21:58:18 20013 4

转载 buffer.flip()的用法

此方法位于:java.nio.Buffer Buffer是一个用于特定基本类型数据的容器。 缓冲区是特定基本类型元素的线性有限序列。除内容外,缓冲区的基本属性还包括容量(capacity)、限制(limit)和位置(position):缓冲区的capacity是它所包含的元素的数量。缓冲区的capacity不能为负并且不能更改。缓冲区的limit 是第一个不应该读取或写入的元

2016-08-17 15:20:03 888

原创 消息队列(Message Queue)基本概念和使用场景分析

背景  之前做日志收集模块时,用到flume。另外也有的方案,集成kafaka来提升系统可扩展性,其中涉及到消息队列当时自己并不清楚为什么要使用消息队列。而在我自己提出的原始日志采集方案中不适用消息队列时,有几个基本问题:1. 日志文件上传过程,有个基本的生产者-消费者问题;2. 另外系统崩溃时,数据丢失的处理问题。  今天,几位同事再次谈到消息队列这么个东西,很NB的样子,我

2016-08-17 10:44:16 5869 1

原创 cookie实现商品浏览记录的原理

当我们来浏览网页时,浏览过的商品要显示在一个指定模块中,最多显示10条记录,而且是最后浏览的商品在最上面显示(可以使用LinkedHashMap实现)要实现这些功能,第一需要cookie(这里当用户浏览商品后,服务器端会创建一个cookie(history,cookie)会给用户端会送response.addCooke(cookie)记录商品信息的Cookie)

2016-08-14 13:16:00 1011

原创 多线程要访问共享数据的方式

1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如:卖票系统2.如果每个线程执行的代码不同,这时候需要不同的Runnable对象,有如下2种方式来实现这些Runnable对象之间的数据共享:   (1)将共享数据封装到另外一个对象中,然后将这个对象逐一传递给各个Runnable对象。每个线程对共享数据的操作方法也分

2016-08-13 09:19:32 282

转载 java学习之Hessian通信基础

一、首先先说Hessian是什么?    Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信。Hessian的初衷就是支持动态类型,格式紧凑,跨语言Hessi

2016-08-12 20:56:56 970

原创 Java中String与基本数据类型间的转换

1.基本数据类型向String的转换可以通过String的静态成员函数valueOf实现,例如boolean b=false;String s=String.valueof(b);2.引用类型向String的转换通过调用该类型的toString()方法3.String向基本数据类型转换通过String的如下静态函数来完成int a=Integer.parseInt(String

2016-08-10 23:00:54 481

转载 Nginx搭建反向代理服务器过程详解

一、反向代理:Web服务器的“经纪人”1.1 反向代理初印象反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。从上图可以看出:反向代理服务器位于网站机房,代理网站Web服务器接收Htt

2016-08-10 13:05:45 754

转载 轻量级分布式 RPC 框架

RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC。会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化。众所周知,TCP 是

2016-08-10 12:51:34 380

转载 java 防盗链

public class RequestPreventThreif extends HttpServlet {      private static final long serialVersionUID = 1L;              //防盗链:用于保护自己独有的消息,防止被其他的网站直接连接浏览,利于保护自己的信息      protected void doGet(

2016-08-10 10:43:00 839

原创 Hessian

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。项目中实际使用直接传输Map很方便。手机端调用也很方便。参考文档(感谢这些文章)RMI原理及实现:http://www.yesky.com/274/1

2016-08-10 10:30:45 330

转载 Hessian RPC示例和基于Http请求的Hessian序列化对象传输

原文  http://aiilive.blog.51cto.com/1925756/1601574主题 Hessian RPC HTTP本文主要介绍两个案例,第一个是使用Hessian来实现远程过程调用,第二个是通过Hessian提供的二进制RPC协议进行和Servlet进行数据交互,Hessian本身即是基于Http的RPC实现。案例一:1.准备工作

2016-08-10 10:05:15 2706

转载 RMI,socket,rpc,hessian,http比较

SOCKET使用时可以指定协议TCP,UDP等;RIM使用JRMP协议,JRMP又是基于TCP/IP;RPC底层使用SOCKET接口,定义了一套远程调用方法;HTTP是建立在TCP上,不是使用SOCKET接口,需要连接方主动发数据给服务器,服务器无法主动发数据个客户端;可以用socket实现HTTP;其实符合HTTP规范的就是HTTP协议,不管用什么

2016-08-10 09:40:59 1142

原创 webserive中的xml、http、schema

一、http协议请求行中的GET称之为请求方式,请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT常用的有: GET、 POST用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。不管POST

2016-08-07 21:35:46 523 4

转载 RESTful Web 讨论题

RESTful Web服务的书一直很少,记得O'Reilly出过一本,还有Packt出过两本CXF和Axis2的入门书,都没翻译到国内。想看看这本书,————————————————————————1.REST究竟是什么?是一种新的技术、一种新的架构、还是一种新的规范?REST即表述性状态转移,英文全称Representational State Transfer,是Roy

2016-08-07 09:13:56 459

原创 RESTful WebService和web service的区别

RESTful 风格的 webservice 越来越流行了, sun 也推出了 RESTful WebService 的官方规范: JAX-RS ,全称:Java API for RESTful WebService。该规范定义了一系列的注解RESTful 简化了 web service 的设计,它不再需要 wsdl ,也不再需要 soap 协议,而是通过最简单的 http

2016-08-07 08:39:03 29416 6

转载 JavaWeb学习总结(使用Session防止表单重复提交)

出自http://www.cnblogs.com/xdp-gacl/p/3859416.html      在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交。一、表单重复提交的常见应用场景有如下的form.jsp页面

2016-08-05 13:20:07 1037 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除