<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Jeff的专栏]]></title><description><![CDATA[java]]></description><link>https://blog.youkuaiyun.com/a4613934</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a4613934]]></copyright><item><title><![CDATA[QPS限流如何选型]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/112480163</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/112480163</guid><author>a4613934</author><pubDate>Mon, 11 Jan 2021 17:40:15 +0800</pubDate><description><![CDATA[随着我们系统的规模逐步扩大，用户数量也会呈几何形上升，一个非常关键的技术在许多项目中显得越来越必要————限流



需求：一个新的抢购项目，预计QPS峰值会达到1000+，考虑到我们后端服务器数量和性能有限，为了防止服务器崩溃，需要将某些请求快速失败，返回用户重试





令牌桶算法和漏桶算法







令牌桶算法

基本思路：


	以恒定的速率向桶内加入令牌（当桶慢后加入的令牌丢弃）
	
	
	请求过来后先去桶内获取令牌，成功则通行，没有获取到则拒绝
	






漏桶算法
...]]></description><category></category></item><item><title><![CDATA[类加载器]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/87277146</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/87277146</guid><author>a4613934</author><pubDate>Thu, 14 Feb 2019 15:41:32 +0800</pubDate><description><![CDATA[
ClassLoad：类加载器（class loader）用来加载 Java 类到 Java 虚拟机中。Java 源程序（.java 文件）在经过 Java 编译器编译之后就被转换成 Java 字节代码（.class 文件）。类加载器负责读取 Java 字节代码，并转换成 java.lang.Class 类的一个实例。

类加载机制
记载，验证，准备，解析，初始化，使用，卸载

类加载器分为三个
...]]></description><category></category></item><item><title><![CDATA[大批量导出excel逻辑（支持异步和同步配置）]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/86986254</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/86986254</guid><author>a4613934</author><pubDate>Mon, 11 Feb 2019 11:49:04 +0800</pubDate><description><![CDATA[需求：需要从数据库查询出几十上百万的数据并导出成excel文件

问题：

1、传统导出方式在几万条数据时还可以胜任，但是数量一旦有几十万甚至上百万的话就会出现内存不够用，内存溢出等问题。

2、大批量导出一般会和业务结合比较紧密，如何抽象出通用工具类

技术关键点：

1、解决大批量导出内存消耗问题

2、通用类的抽象

实现思路：

1、因为大部分内存问题发生在查询数据库和生成excel两个地...]]></description><category></category></item><item><title><![CDATA[Spring整合mybatis源码分析]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/79698285</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/79698285</guid><author>a4613934</author><pubDate>Mon, 26 Mar 2018 17:41:11 +0800</pubDate><description><![CDATA[在解析源码之前，我们需要知道Mybatis如何独立使用简历POJOpublic class User(){    private String name;    private String age;    //省略set get}建立Mapperpublic Integerface UserMapper{    public void insertUser(User user);    publ...]]></description><category></category></item><item><title><![CDATA[Spring bean的生命周期，对比源码详解]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/79400402</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/79400402</guid><author>a4613934</author><pubDate>Wed, 28 Feb 2018 17:41:12 +0800</pubDate><description><![CDATA[为了更加熟悉spring的总体流程，看了spring的源码。

  看了很多网上的资料写的spring的bean的生命周期，但是感觉和看到的源码有部分出入，这里再总结下。



正文：  



spring获取bean的时候有两种方式：

BeanFactory bf = new XmlBeanFactory(new ClassPathResource(&quot;appli...]]></description><category></category></item><item><title><![CDATA[事务隔离机制如何选型]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/70311979</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/70311979</guid><author>a4613934</author><pubDate>Fri, 21 Apr 2017 10:41:47 +0800</pubDate><description><![CDATA[事务隔离机制我会简单复述，主要总结各个事务隔离机制能解决什么问题和在实际存储过程中该如何选型的问题(这里以mysql数据库为例)原则
执行效率在 Read uncommitted, Read committed,repeatble read,serializable依次递减(Read committed,repeatble read 两个效率差不多)。隔离级别的设置应该保证对系统最小影响下运行。
事]]></description><category></category></item><item><title><![CDATA[easy-mapper 源码分析]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/54950543</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/54950543</guid><author>a4613934</author><pubDate>Thu, 09 Feb 2017 18:01:42 +0800</pubDate><description><![CDATA[问题： 
        在编写程序的过程中，我们会将bean按照业务的不同分作po，ao，pojo，dto等等。一个业务联下来经常会遇到不同bean之间的转换工作，像下面这样： 
        Student t = new Student(); 
        t.setName(studentDto.getName()); 
        t.setId(studentDto.getId]]></description><category></category></item><item><title><![CDATA[ReentrantReadWriteLock重入锁中的读写锁在公平和非公平模式下的资源抢占测验]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/51671368</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/51671368</guid><author>a4613934</author><pubDate>Tue, 14 Jun 2016 14:31:40 +0800</pubDate><description><![CDATA[最近在研究jdk的锁机制，reentrantreadwritelock实现了读写锁分离机制，其中读锁可以被多个线程重入，写锁是独占的，并且在写锁开启的时候，读取操作进入阻塞队列。这里我做了一个测试，来观察在公平与非公平模式下读写锁互相如何抢占资源，下面附上测试代码


package test.readWriteLock;

import java.util.Random;
import j]]></description><category></category></item><item><title><![CDATA[集成ad gallery 和 funcyBox 实现图片轮转，并点击放大]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/19159587</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/19159587</guid><author>a4613934</author><pubDate>Thu, 13 Feb 2014 14:14:25 +0800</pubDate><description><![CDATA[ad gallery 不用多说了，如果想要集成这两种东西，你首先要做的就是学习使用ad gallery实现图片轮转效果，具体怎么做参考我上一篇文章，在做好了ad gallery 后 在网页中（例如：index.html）加入如下js代码：$(document).ready(function() {
 
    $(".ad-gallery").on("click", ".ad-image", fu]]></description><category></category></item><item><title><![CDATA[使用AD Gallery制作强大的相册画廊]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/19110353</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/19110353</guid><author>a4613934</author><pubDate>Wed, 12 Feb 2014 10:24:18 +0800</pubDate><description><![CDATA[使用AD Gallery制作强大的相册画廊


分类： JS2013-10-29
 11:35 89人阅读 评论(0) 收藏 举报

AD
 Gallery相册ad-galleryad-galleryAPI

AD Gallery是一个带缩略图导航浏览，可设置照片标题和备注说明信息的jQuery相册插件。该插件提供了许多可配置的参数和方法，具有很强的定制功能。
http://w]]></description><category></category></item><item><title><![CDATA[js 读写 cookie]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/17715741</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/17715741</guid><author>a4613934</author><pubDate>Tue, 31 Dec 2013 15:28:47 +0800</pubDate><description><![CDATA[cookie处理函数练习(为我所写，非我所想:改善面向对象) 
 
function addCookie(objName,objValue,objHours){//添加cookie 
var str = objName + "=" + escape(objValue); 
if(objHours > 0){//为0时不设定过期时间，浏览器关闭时cookie自动消失 
var date =]]></description><category></category></item><item><title><![CDATA[新手使用 Nexus 出现的问题 （400-bad request missing request entity）]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/16903251</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/16903251</guid><author>a4613934</author><pubDate>Sat, 23 Nov 2013 17:26:02 +0800</pubDate><description><![CDATA[最近在 学习Nexus 管理 maven 仓库  ， 我不是说具体怎么做的  网上的教程一大堆 ，自己搜就好了，可是在学习过程中出现这个问题，差点搞死我：

在经过两天的查找相关解释的过程后，最后在一片外国文档中找到了答案 

具体甚么情况自己查单词吧，换掉IE 改用opera  正常运行！]]></description><category></category></item><item><title><![CDATA[解决java spide 方法以 “*”分割问题]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/16362771</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/16362771</guid><author>a4613934</author><pubDate>Sat, 16 Nov 2013 22:53:25 +0800</pubDate><description><![CDATA[遇见一个问题  需要将“8989*8989*776”这样一个字符串分割，使用spide后发现“*”貌似不能被当作正常的字符，而是被当作正则表达式处理了，试了很多方法没搞定  最后这样做就解决了：System.out.println(s.split("\\*")[0]);  呵呵……]]></description><category></category></item><item><title><![CDATA[springMVC  教程 快速入门  深入分析]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/13170555</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/13170555</guid><author>a4613934</author><pubDate>Sun, 27 Oct 2013 15:48:15 +0800</pubDate><description><![CDATA[作者：赵磊

博客：http://elf8848.iteye.com

 

目录 

一、前言
二、spring mvc 核心类与接口
三、spring mvc 核心流程图

四、spring mvc DispatcherServlet说明

五、spring mvc 父子上下文的说明

六、springMVC-mvc.xml 配置文件片段讲解 
七、sprin]]></description><category></category></item><item><title><![CDATA[对 RBAC 的理解  新手上路]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/12999563</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/12999563</guid><author>a4613934</author><pubDate>Thu, 24 Oct 2013 17:22:26 +0800</pubDate><description><![CDATA[刚刚接触RBAC（Role Base Access Control） 这种权限控制思想，一下大部分内容都是本人摘自其他网页的资料，然后做了整合，但对新手来说用来上手还是可以考虑的！

RBAC的基本思想：授权给用户的访问权限，通常由用户在一个组织中担当的角色来确定。RBAC中许可被授权给角色，角色被授权给用户，用户不直接与许可关联。RBAC对访问权限的授权由管理员统一管理，RBAC根据用户在组]]></description><category></category></item><item><title><![CDATA[对spring   AOP的理解]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/12959175</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/12959175</guid><author>a4613934</author><pubDate>Wed, 23 Oct 2013 01:55:56 +0800</pubDate><description><![CDATA[AOP的概念：   aspect  oriented  programming    面向切面的编程
    优点 ：         在不破坏程序原有架构的基础上对程序注入新的逻辑
                         降低了程序耦合度
                          提高了程序的灵活性
   
   实现方法 ：    jdk的proxy，cglib的]]></description><category></category></item><item><title><![CDATA[对spring DI（依赖注入）的理解]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/12927555</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/12927555</guid><author>a4613934</author><pubDate>Tue, 22 Oct 2013 01:42:25 +0800</pubDate><description><![CDATA[学习spring是在一年前了，现在把自己对spring中DI的理解写下来！
DI,Dependency Injection，许多人又把它叫做IOC，inversion of control，其实个人感觉意思差不太多，只是说法上有些不同罢了。

 DI是spring的核心功能之一，实现该功能主要有以下几个步骤：


     （1）spring读取配置文件（spring.xml）并将读取]]></description><category></category></item><item><title><![CDATA[【转】Lucene笔记+PaodingAnalyzer+高亮显示]]></title><link>https://blog.youkuaiyun.com/a4613934/article/details/12896379</link><guid>https://blog.youkuaiyun.com/a4613934/article/details/12896379</guid><author>a4613934</author><pubDate>Mon, 21 Oct 2013 00:18:15 +0800</pubDate><description><![CDATA[[1]
(1)
Lucene是一个基于Java全文搜索引擎，利用它可以轻易地为Java软件加入全文搜寻功能。
(2)
Lucene能做什么？
Lucene可以对任何的数据做索引和搜索。Lucene不管数据源是什么格式，只要它能被转化为文字的形式，就可以被Lucene所分析利用。也就是说不管是MSword， Html ，pdf还是其他什么形式的文件只要你可以从中抽取出文字形式的内容就可以被]]></description><category></category></item></channel></rss>