自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xusanyao的博客

点滴积累

  • 博客(46)
  • 收藏
  • 关注

转载 Spring Boot 入门3

Spring Boot 入门Spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生产效率。为Spring生态系统提供了一种固定的、约定优于配置风格的框架。Spring Boot具有如下特性:为基于Spring的开...

2018-03-30 11:31:50 137

转载 序列化详解

1、定义Serialization(序列化)为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来,即将对象以一连串的字节描述;反序列化deserialization是一种将这些字节重建成一个对象的过程。2、需要实现序列化的几种情况 (1)想把内存中的对象保存到一个文件中或者数据库中时候;(2)想用套接字在网络上传送对象的时候;(3)想通过RMI传输对象的时候;

2018-03-28 10:54:51 203

转载 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM、SAX、JDOM和DOM4J下面首先给出这四种方法的jar包下载地址DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里SAX:http://sourceforge.net/projects/sax/JDOM:http://jdom.org/downloads/index.htmlD

2018-03-28 09:23:06 127

转载 几种序列化协议的介绍

序列化概述1.序列化定义序列化(serialization)就是将对象序列化为二进制形式(字节数组),一般也将序列化称为编码(Encode),主要用于网络传输、数据持久化等;反序列化(deserialization)则是将从网络、磁盘等读取的字节数组还原成原始对象,以便后续业务的进行,一般也将反序列化称为解码(Decode),主要用于网络传输对象的解码,以便完成远程调用。

2018-03-28 09:12:08 14127

转载 Shiro入门--Hello Shiro

Apache Shiro是Apache的一个安全框架.对比Spring Security,可能没有Spring Security功能多,但是在实际并不需要那么重的东西.shiro简小精悍.大多项目绰绰有余.(JBOSS好像也有个什么安全框架…名字忘了,去JBOSS官网找了半天也没找到,找到个jboss sso好像是单点登录方面使用的安全框架)  Shiro主要功能有认证,授权,加密,会话管

2018-03-26 15:24:45 206

转载 Shiro 基本使用总结

1.简介Apache Shiro是一个强大且易用的 Java 安全框架,执行身份验证、授权、密码学和会话管理。认证、授权:认证简单的说,就是登录的时候判断你的用户名和密码是否完全匹配,就是证明你是你。授权,是在认证的基础之上,进行角色和权限的授予。权限决定了一个用户可以进行怎样的操作。角色、权限:权限定义了一个用户是否可以执行某个操作。角色就是一组权限的集合。我们

2018-03-26 11:16:59 208

原创 mybatis #{} 以及 ${}

动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${}。在下面的语句中,如果 username 的值为 zhangsan,则两种方式无任何区别:select * from user where name =

2018-03-26 09:58:56 236

转载 DRF算法

背景在Mesos和YARN中,都用到了dominant resource fairness算法(DRF),它不同于hadoop基于slot-based实现的fair scheduler和capacity scheduler,论文阅读:Dominant Resource Fairness: Fair Allocation of Multiple Resource Types。考虑在一个包

2018-03-25 23:02:37 956

转载 快速排序

什么是快速排序?快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法原理单单看以上解释还是有些模糊,可以通过实例来理解它,下面通过一组数据来进行排序过程的解析:原数组:{3,7...

2018-03-22 11:39:50 158

原创 冒泡排序

设数组的长度为N: (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。(2)这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。(3)N=N-1,如果N不为0就重复前面二步,否则排序完成。以上就是冒泡排序的基本思想,按照这个定义很快就能写出代码:/** * 冒泡排序的第一种实现, 没有任何

2018-03-22 11:12:00 119

原创 二分查找时间复杂度的计算

二分查找的基本思想是将n个元素分成大致相等的两部分,去a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x.时间复杂度无非就是while循环的次数!总共有n个元素,渐渐跟下去就是n,n/2,n/4,....n/2^k,其中k就是循环的次数,n,n/2,n/4这部分是...

2018-03-22 08:57:50 795

原创 SOA与微服务的区别

其实这两种架构在原则上确实相当近似,但仍有不同之处。在围绕服务的概念创建架构这一方面,微服务提供了一种更清晰、定义更良好的方式。这两者之间最关键的区别在与微服务更专注于以自治的方式产生价值。        对于微服务,我们可以这么理解:经过分离的组件可以各自拥有独立的生命周期,独立部署(Docker),并且按需进行扩展。不仅如此,这种方式也打破了组件之间的技术依赖,这就

2018-03-19 15:51:35 286

转载 微服务架构的核心要点和实现原理

微服务架构中职能团队的划分传统单体架构将系统分成具有不同职责的层次,对应的项目管理也倾向于将大的团队分成不同的职能团队,主要包括:用户交互UI团队、后台业务逻辑处理团队与数据存取ORM团队、DBA团队等。每个团队只对自己分层的职责负责,并对使用方提供组件服务质量保证。如果其中一个模块化组件需要升级、更新,那么这个变更会涉及不同的分层团队,即使升级和变更的改变很小,也需要进行跨团队沟通:需求

2018-03-19 15:45:03 282

转载 数据库分库分表策略的具体实现方案

相关文章:1、 使用Spring AOP实现MySQL数据库读写分离案例分析2、MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解3、MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结4、使用mysqlreplicate命令快速搭建 Mysql 主从复制5、大型网站应用之海量数据和高并发解决方案总结一二一、MySQL扩展具体的实现方式随着业务规模的不断扩大...

2018-03-15 20:36:19 174

转载 MapReduce的原理及执行过程

MapReduce简介MapReduce是一种分布式计算模型,是Google提出的,主要用于搜索领域,解决海量数据的计算问题。MR有两个阶段组成:Map和Reduce,用户只需实现map()和reduce()两个函数,即可实现分布式计算。MapReduce执行流程  MapReduce原理   MapReduce的执行步骤:1、Map任务处理  1.1

2018-03-13 20:54:31 281

转载 Webservice soap wsdl区别之个人见解

原文:http://blog.csdn.net/pautcher_0/article/details/6798351Web Service实现业务诉求:Web Service是真正“办事”的那个,提供一种办事接口的统称。WSDL提供“能办的事的文档说明”:对要提供的服务的一种描述格式。我想帮你的忙,但是我要告诉你我都能干什么,以及干这些事情需要的参数类型。SOAP 提供

2018-03-12 23:44:35 925

转载 Java发布一个简单 webservice应用 并发送SOAP请求

一、创建并发布一个简单的webservice应用  1、webservice 代码:   1 package com.ls.demo; 2 3 import javax.jws.WebMethod; 4 import javax.jws.WebService; 5 import javax.xml.ws.Endpoint; 6 7 8 @WebService

2018-03-12 23:44:02 853

转载 论SOA架构的几种主要开发方式

面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。Soa的开发方法一般主要有开源的dubbo、dubbox、mule、wso2、cxf,以及付费的oracle soa、ibm soa等。        SOA是一种粗粒度

2018-03-12 20:28:18 155

转载 REST与SOA两种架构的异同

REST的特性它基于HTTP协议,是一种明确构建在客户端/服务端体系结构上的一种风格。特征如下:1、网络上的资源都被抽象为资源,这些资源都具有唯一的统一资源标识符(URI:Uniform Resource Identiter),这些资源都是自我们描述的。这些资源使用HTTP内容标头类型指定。如:XML、JSON、HTML、PNG等。2、服务的使用者通过HTTP协议的标准动作(Get

2018-03-12 20:27:05 192

转载 SOA 指南

SOA 架构设计原则曾经被深受误解。SOA 设计原则实际上只是一系列经久考验的针对服务设计的最佳实践。《SOA 指南》系列搜集到的关于 SOA 的资源包括概述、设计原则以及安全最佳实践。范围工具基础SOA 图解一张图来帮你理解 SOA。SOA 市场打造你自己的企业级 SOA 市场。SOA 解惑一些误导的澄清。现实世界里的 SOASOA 理想愿景之外的一面。大 SOA世界上最大的 SOA。设计最佳实...

2018-03-12 20:17:34 183

转载 Java基础之反射

反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解...

2018-03-12 15:27:58 109

转载 条件锁

ReentrantLock类有一个方法newCondition用来生成这个锁对象的一个条件(ConditionObject)对象,它实现了Condition接口。Condition提供了线程通讯的一套机制await和signal等线程间进行通讯的方法。。1、适用场景     当某线程获取了锁对象,但因为某些条件没有满足,需要在这个条件上等待,直到条件满足才能够往下继续执行时,就需要用到条件锁。  ...

2018-03-12 13:43:31 797

转载 RocketMQ的顺序消费和事务消费

一、三种消费 :1.普通消费 2. 顺序消费 3.事务消费1.1  顺序消费:在网购的时候,我们需要下单,那么下单需要假如有三个顺序,第一、创建订单 ,第二:订单付款,第三:订单完成。也就是这个三个环节要有顺序,这个订单才有意义。RocketMQ可以保证顺序消费,他的实现是生产者(一个生产者可以对多个主题去发送消息)将这个三个消息放在topic(一个topic默认有4个队列)的一个队列里面,单

2018-03-12 09:18:07 268

转载 Kafka VS RocketMQ VS RabbitMQ

--kafkaRocketMQRabbitMQ数据来源相关文章定位设计定位系统间的数据流管道,实时数据处理。 例如:常规的消息系统、网站活性跟踪,监控数据,日志收集、处理等非日志的可靠消息传输。 例如:订单,交易,充值,流计算,消息推送,日志流式处理,binglog分发等可靠消息传输。和RocketMQ类似。基础对比成熟度日志领域成熟 成熟 成熟 所属社区/公司Apache Alibaba开发,已...

2018-03-10 08:39:51 562

转载 Memcached 与Redis缓存服务器介绍

Memcached缓存 简单介绍:memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。Redis缓存 简单介绍:是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(s

2018-03-08 14:45:30 279

转载 Java操作Redis

目前Jedis是官方推荐的比较好的Redis操作API包,我们这里结合Spring来看下如何使用Redis这一神器。1、在pom文件中引入jredis包:  redis.clients  jedis  2.8.12、在Spring的resource目录中增加Redis的配置文件/src/main/resources/redis.properties#

2018-03-07 17:12:18 268

原创 应对缓存击穿的解决方法

一.什么样的数据适合缓存?分析一个数据是否适合缓存,我们要从访问频率、读写比例、数据一致性等要求去分析.二.什么是缓存击穿在高并发下,多线程同时查询同一个资源,如果缓存中没有这个资源,那么这些线程都会去数据库查找,对数据库造成极大压力,缓存失去存在的意义.打个比方,数据库是人,缓存是防弹衣,子弹是线程,本来防弹衣是防止子弹打到人身上的,但是当防弹衣里面没有防弹的物质时,子弹就会穿过...

2018-03-07 15:53:17 48904 15

原创 数据库隔离级别详解

简单概述:现代数据库不会使用纯粹的隔离作为默认模式,因为它会带来巨大的性能消耗。SQL一般定义4个隔离级别:串行化(Serializable,SQLite默认模式):最高级别的隔离。两个同时发生的事务100%隔离,每个事务有自己的『世界』。可重复读(Repeatable read,MySQL默认模式):每个事务有自己的『世界』,除了一种情况。如果一个事务成功执行并且添加了新数据,这些数据对其他正在...

2018-03-07 15:06:18 573

转载 Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法

1. BeanFactory  BeanFactory,以Factory结尾,表示它是一个工厂类(接口),用于管理Bean的一个工厂。在Spring中,BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。  Spring为我们提供了许多易用的BeanFactory实现,XmlBeanFactory就是常用的一个,该实

2018-03-07 11:24:47 126

转载 angular2下用http到由SpringMVC发布rest服务的服务器端拉取数据

本文讲述如何使用angular2的http服务来去一台由SpringMVC发布的rest服务的服务器上拉取数据。我们现来上服务端代码,[java] view plaincopy@ResponseBody     @RequestMapping("/hero")     public Object getData(Htt

2018-03-06 22:42:13 171

转载 Java动态代理之JDK实现和CGlib实现

原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html      一:代理模式(静态代理)          代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。          静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业

2018-03-06 21:19:54 108

转载 Java JDK 动态代理(AOP)使用及实现原理分析

一、什么是代理?        代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理模式UML图:简单结构示意图:        为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问...

2018-03-06 21:14:30 165

转载 Spring系列之Spring常用注解总结

传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率。为了解决...

2018-03-05 21:23:13 168

转载 CGLIB(Code Generation Library)详解

什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项目,其代码托管在github,地址为:https://github.com/cglib/cglib

2018-03-05 09:58:14 176

转载 深入解析Spring架构与设计原理(二)AOP原理

AOP联盟定义的AOP体系结构把与AOP相关的概念大致分为了由高到低、从使用到实现的三个层次。关于这个体系结构,个人的理解是这样的,从上往下,最高层是语言和开发环境,在这个环境中可以看到几个重要的概念:base可以视为待增强对象,或者说目标对象;aspect指切面,通常包含对于base的增强应用;configuration可以看成是一种编织或者说配置,通过在AOP体系中提供这个configurat

2018-03-05 09:49:21 108

转载 IoC模式(依赖、依赖倒置、依赖注入、控制反转)

1.依赖依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖。如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它。下面看一个简单的示例: /// /// 用户播放媒体文件 /// public class OperationMain { publi

2018-03-05 09:18:07 135

转载 轻松理解MYSQL MVCC 实现机制

转自http://blog.csdn.net/whoamiyang/article/details/519018881. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。 1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一

2018-03-02 10:35:52 147

转载 四种mysql存储引擎

前言数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。存储引擎查看MySQL给开发者提供了查询存储引擎的功能,我这里使用

2018-03-02 10:31:00 107

转载 JavaWeb三大组件(Servlet、Filter、Listener)

JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能,然而很多人可能只用过其中一个或者两个(Servlet、Filter,比如我),很难接触到第三个组件,因此对原始JavaWeb开发还不够熟悉,在这种情况下进行框架学习,这种做法是并不可取,框架是大牛们对原始JavaWeb进行封装的结果,没有原始JavaWeb开发基础是很难

2018-03-02 10:00:41 120

转载 ThreadLocal用法详解和原理

一、用法ThreadLocal用于保存某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。1、ThreadLocal.get: 获取ThreadLocal中当前线程共享变量的值。2、ThreadLocal.set: 设置ThreadLocal中当前线程共享变量的值。3、ThreadLoc

2018-03-02 09:44:21 144

空空如也

空空如也

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

TA关注的人

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