<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AlvinTech14的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AlvinTech14</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AlvinTech14]]></copyright><item><title><![CDATA[Mocks Aren't Stubs]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/50680428</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/50680428</guid><author>AlvinTech14</author><pubDate>Wed, 17 Feb 2016 14:53:53 +0800</pubDate><description><![CDATA[转载自： Martin Fowler 的 Mocks are not Stubs
http://martinfowler.com/articles/mocksArentStubs.html


Mocks Aren't Stubs

The term 'Mock Objects' has become a popular one to describe special case obj]]></description><category></category></item><item><title><![CDATA[TestDrivenDevelopment 测试驱动开发]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/50680410</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/50680410</guid><author>AlvinTech14</author><pubDate>Wed, 17 Feb 2016 14:52:03 +0800</pubDate><description><![CDATA[转载自：http://martinfowler.com/bliki/TestDrivenDevelopment.html

Test-Driven Development (TDD) is a technique for building software that guides software development by writing tests. It was developed b]]></description><category></category></item><item><title><![CDATA[Spring使用Cache]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/49666937</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/49666937</guid><author>AlvinTech14</author><pubDate>Thu, 05 Nov 2015 19:33:40 +0800</pubDate><description><![CDATA[Spring使用Cache
 
 
       从3.1开始，Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的，其核心思想是这样的：当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中，等到下次利用同样的参数来调用该方法时将不再执行该方法，而是直接从缓存中获取结果进行返回。所以在使用]]></description><category></category></item><item><title><![CDATA[Redis   set 类型 查询命令]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/48087023</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/48087023</guid><author>AlvinTech14</author><pubDate>Sat, 29 Aug 2015 14:14:05 +0800</pubDate><description><![CDATA[一、概述：

      在Redis中，我们可以将Set类型看作为没有排序的字符集合，和List类型一样，我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。需要说明的是，这些操作的时间复杂度为O(1)，即常量时间内完成次操作。Set可包含的最大元素数量是4294967295。
      和List类型不同的是，Set集合中不允许出现重复的元素，这一点和C++标准库中]]></description><category></category></item><item><title><![CDATA[RabbitMQ]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/48009277</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/48009277</guid><author>AlvinTech14</author><pubDate>Wed, 26 Aug 2015 20:09:46 +0800</pubDate><description><![CDATA[1      什么是RabbitMQ？
RabbitMQ是实现AMQP（高级消息队列协议）的消息中间件的一种，最初起源于金融系统，用于在分布式系统中存储转发消息，在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦，消息的发送者无需知道消息使用者的存在，反之亦然：

 
单向解耦

 
双向解耦（如：RPC）
    例如一个日志系统，很容易使用RabbitM]]></description><category></category></item><item><title><![CDATA[深入理解Java国际化]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47440611</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47440611</guid><author>AlvinTech14</author><pubDate>Wed, 12 Aug 2015 10:34:22 +0800</pubDate><description><![CDATA[假设我们正在开发一个支持多国语言的Web应用程序，要求系统能够根据客户端的系统的语言类型返回对应的界面：英文的操作系统返回英文界面，而中文的操作系统则返回中文界面——这便是典型的i18n国际化问题。对于有国际化要求的应用系统，我们不能简单地采用硬编码的方式编写用户界面信息、报错信息等内容，而必须为这些需要国际化的信息进行特殊处理。简单来说，就是为每种语言提供一套相应的资源文件，并以规范化命名的方式]]></description><category></category></item><item><title><![CDATA[@MappedSuperclass 介绍]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47208757</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47208757</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 16:55:05 +0800</pubDate><description><![CDATA[基于代码复用和模型分离的思想，在项目开发中使用JPA的@MappedSuperclass注解将实体类的多个属性分别封装到不同的非实体类中。

1.@MappedSuperclass注解只能标准在类上：@Target({java.lang.annotation.ElementType.TYPE})

2.标注为@MappedSuperclass的类将不是一个完整的实体类，他将不会映射到数据库]]></description><category></category></item><item><title><![CDATA[Ip 子网掩码 物理地址 验证]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47208181</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47208181</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 16:54:31 +0800</pubDate><description><![CDATA[@Pattern(regexp = 
"(((128|192|224|240|248|252|254|255)\\.0\\.0\\.0)|(255\\.(0|128|192|224|240|248|252|254|255)\\.0\\.0)|(255\\.255\\.(0|128|192|224|240|248|252|254|255)\\.0)|(255\\.255\\.255\\.(0|12]]></description><category></category></item><item><title><![CDATA[Email 验证]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47208097</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47208097</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 16:03:03 +0800</pubDate><description><![CDATA[import java.util.ArrayList;
import java.util.Collection;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.validation.ConstraintValidator;]]></description><category></category></item><item><title><![CDATA[Java：注解（Annotation）自定义注解入门]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207453</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207453</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:51:57 +0800</pubDate><description><![CDATA[要深入学习注解，我们就必须能定义自己的注解，并使用注解，在定义自己的注解之前，我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。


元注解：

　　元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型，它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解：
　　　　1.@Target,
　　　　]]></description><category></category></item><item><title><![CDATA[@interface java注解]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207441</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207441</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:50:56 +0800</pubDate><description><![CDATA[@Documented，@Retention，@Target，@Inherited

1. 编写自定义@Todo注解
经常我们在写程序时，有时候有些功能在当前的版本中并不提供，或由于某些其它原因，有些方法没有完成，而留待以后完成，我们在javadoc中用@TODO来描述这一行为，下面用java注解来实现。

public @interface Todo { } // Todo.java]]></description><category></category></item><item><title><![CDATA[org.apache.velocity 简介]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207287</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207287</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:37:56 +0800</pubDate><description><![CDATA[org.apache.velocity
                velocity
                1.7
            
http://my.oschina.net/aiguozhe/blog/39553





Velocity是什么？ 

        Velocity是一个基于java的模板引擎（template engine）。它允许]]></description><category></category></item><item><title><![CDATA[Java Metrics]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207265</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207265</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:35:17 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/wsscy2004/article/details/40423669





Java Metrics

Java Metrics是一个功能比较强大的java统计库，它的输出组件也很强大，帮我们做好了：

输出到Ganglia输出到控制台输出到JMX输出Json

详细见：dropwizard.github.io/metrics/]]></description><category></category></item><item><title><![CDATA[Avro简介]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207227</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207227</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:32:22 +0800</pubDate><description><![CDATA[一、引言

1、 简介

Avro是Hadoop中的一个子项目，也是Apache中一个独立的项目，Avro是一个基于二进制数据传输高性能的中间件。在Hadoop的其他项目中例如HBase(Ref)和Hive(Ref)的Client端与服务端的数据传输也采用了这个工具。Avro是一个数据序列化的系统。Avro 可以将数据结构或对象转化成便于存储或传输的格式。Avro设计之初就用来支持数据密集]]></description><category></category></item><item><title><![CDATA[OAuth2.0 原理]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207151</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207151</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:23:18 +0800</pubDate><description><![CDATA[原文地址：http://kb.cnblogs.com/page/189153/

本想前段时间就把自己通过QQ OAuth1.0、OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家，可一直很忙，今天抽点时间说下OAuth1.0协议原理，及讲解下QQ对于Oauth1.0的认证开发。闲话多说了点，下面直接进入主题。

　　1、OAuth的简述

　　OAuth（Ope]]></description><category></category></item><item><title><![CDATA[Oauth2.0 用Spring-security-oauth2 非常简单]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207091</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207091</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:18:23 +0800</pubDate><description><![CDATA[上周，我想开发OAuth 2.0的一个实例。我检查了Spring-security-Oauth2.0的样例，OAuth 2提供商sparklr2和OAuth 2客户端TONR 。我探索在互联网上了一下，整理相关文档。编译并运行了OAuth
 2提供商sparklr2和OAuth 2客户端TONR，并检查所有的授权上。现在，我在这里从实用的角度讲解的OAuth 2.0的不同方面来理解Spring-]]></description><category></category></item><item><title><![CDATA[Reflections让Java的反射更得简单]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207071</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47207071</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:15:42 +0800</pubDate><description><![CDATA[org.reflections
          reflections
      




反射对Java开发人员来说是最强大的功能之一了。标准的Java API真的很难使用，尤其是搜索和查询某些特殊的方法的时候。

比如说，我最近在参与的一个项目，要取出一个类的所有返回string，不带参数的，且以to开头的public方法，写出来的代码大概像下面这样：




?]]></description><category></category></item><item><title><![CDATA[redis  Jredis   spring-data-redis]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47206957</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47206957</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 14:08:36 +0800</pubDate><description><![CDATA[redis是一个key-value存储系统。和Memcached类似，它支持存储的value类型相对更多，包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash（哈希类型）。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作，而且这些操作都是原子性的。在此基础上，redis支持各种不同方式的排序。]]></description><category></category></item><item><title><![CDATA[JMX简介]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47206895</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47206895</guid><author>AlvinTech14</author><pubDate>Sun, 02 Aug 2015 13:56:08 +0800</pubDate><description><![CDATA[[动态修改程序的配置的思想值得学习!] 
 
一、JMX简介
　　JMX是一种JAVA的正式规范，它主要目的是让程序有被管理的功能，那么怎么理解所谓的“被管理”呢？试想你开发了一个软件（如ＷＥＢ网站），它是在２４小时不间断运行的，那么你可能会想要“监控”这个软件的运行情况，比如收到了多少数据，有多少人登录等等。或者你又想“配置”这个软件，比如现在访问人数比较多，你想把数据连接池设置得大一些。]]></description><category></category></item><item><title><![CDATA[eclipse 快捷键]]></title><link>https://blog.youkuaiyun.com/AlvinTech14/article/details/47107305</link><guid>https://blog.youkuaiyun.com/AlvinTech14/article/details/47107305</guid><author>AlvinTech14</author><pubDate>Tue, 28 Jul 2015 16:30:30 +0800</pubDate><description><![CDATA[eclipse 快捷键]]></description><category></category></item></channel></rss>