<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[求知若饥、虚心若愚]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaobai66073</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaobai66073]]></copyright><item><title><![CDATA[Grafana使用Elasticsearch作为数据源绘制Graph]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/81539086</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/81539086</guid><author>xiaobai66073</author><pubDate>Thu, 09 Aug 2018 16:23:47 +0800</pubDate><description><![CDATA[

最近在使用Grafana对Elasticsearch中使用metricbeat收集到的机器各种指标进行绘图中，发现Grafana中相对于Kibana对Elasticsearch的聚合支持的特别少，可能是因为两者侧重点不同，下面我将在Grafana中使用Elasticsearch作为数据源绘制网络的IO图以及disk的IO图。


下载Grafana 
https://grafana.com/g...]]></description><category></category></item><item><title><![CDATA[zookeeper集群和kafka的搭建]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/81363404</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/81363404</guid><author>xiaobai66073</author><pubDate>Thu, 02 Aug 2018 16:50:56 +0800</pubDate><description><![CDATA[之前一直搭建过zookeeper和hadoop集群，但是都是在windows机器上搭建的单机版，今天想在linux机器下搭建一个kafka集群，在搭建kafka集群之前需要搭建一个zookeeper集群。

我的zookeeper集群是在同一个linux机器上启动的三个节点与在不同机器上部署的原理类似，部署步骤如下： 
 1. 下载zookeeper包(以zookeeper-3.3.3为例) 
 ...]]></description><category></category></item><item><title><![CDATA[Java实现三种（顺序，链式，循环）队列]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/77527942</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/77527942</guid><author>xiaobai66073</author><pubDate>Thu, 24 Aug 2017 11:22:28 +0800</pubDate><description><![CDATA[1.顺序队列的实现package lang;  import java.io.Serializable;  
import java.util.Arrays;  /** 
 * @ClassName: ArrayQueue 
 * @Description: 顺序队列 
 * @date 2014年1月20日 下午3:46:19 
 * @param <T> 
 */  
public class]]></description><category></category></item><item><title><![CDATA[基于服务器端缓存redis的简单实现]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/77374085</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/77374085</guid><author>xiaobai66073</author><pubDate>Fri, 18 Aug 2017 17:16:23 +0800</pubDate><description><![CDATA[通俗的讲，服务器端缓存redis在项目中是作为一个DB在使用的，但是与DB不同的是它是以key,value方式存在的，而且它具有丰富的数据结构，redis将内存中的数据保持在磁盘中。]]></description><category></category></item><item><title><![CDATA[Java Web项目中定时器Timer的使用]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/77371441</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/77371441</guid><author>xiaobai66073</author><pubDate>Fri, 18 Aug 2017 16:11:10 +0800</pubDate><description><![CDATA[在以前的文章中，曾经写过一个调度器Quartz的使用实例，今天，分享一个JDK自带的定时器Timer在Java Web项目中的使用。首先，简单说一下Quartz和Timer的相同和不同之处：相同：他们都是定时去执行一些操作，比如，定时删除一些过期数据，定时发送一些通知消息等等。 
区别：Quartz是一个开源的任务调度框架，需要进行配置和加入相应的依赖，而Timer是JDK自带的一个定时器，无需配置]]></description><category></category></item><item><title><![CDATA[使用Spring MVC拦截器管理操作日志]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/77085224</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/77085224</guid><author>xiaobai66073</author><pubDate>Fri, 11 Aug 2017 09:47:17 +0800</pubDate><description><![CDATA[通过拦截器记录操作日志，将操作日志保存到数据库中，实现这个功能需要我们将curd操作的URL规范化，比如：新增是以add或者insert开始，修改是update开头，删除则是delete开头。第一步：编写拦截器类，代码如下：package com.siweisoft.interceptor;
import com.siweisoft.dao.OperationRecordMapper;
import]]></description><category></category></item><item><title><![CDATA[jQuery 实现获取动态表格的值]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/75078210</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/75078210</guid><author>xiaobai66073</author><pubDate>Thu, 13 Jul 2017 16:36:24 +0800</pubDate><description><![CDATA[最近做项目时，有这样的一个需求，需要获取动态表格的填值传向后台，表格是动态生成的，所以行数是不确定的。表格如下图： 
获取表格数据并封装为json；var rows = document.getElementById("yuancailiaoTable").rows.length; //获得行数(包括thead)
        var colums = document.getElementByI]]></description><category></category></item><item><title><![CDATA[使用SSM框架配置多个数据库连接]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/73194701</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/73194701</guid><author>xiaobai66073</author><pubDate>Tue, 13 Jun 2017 19:58:43 +0800</pubDate><description><![CDATA[最近做同步数据的时候需要将数据同步到另一个数据库中，也就是跨库操作，这就需要我们配置多个数据库连接来进行操作，具体代码如下：1、在jdbc.properties配置文件内配置两个数据库连接：ds1.driverClassName=com.mysql.jdbc.Driver
ds1.url=jdbc:mysql://127.0.0.1:3306/img_dist-2017?useUnicode=tru]]></description><category></category></item><item><title><![CDATA[数据结构和算法的简单理解]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/72916815</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/72916815</guid><author>xiaobai66073</author><pubDate>Thu, 08 Jun 2017 14:20:21 +0800</pubDate><description><![CDATA[前言数据结构和算法这两门课是我在大学期间学过的课程，当时这两门课程不太好学，在大学的时候老师讲的似懂非懂，但是现在随着工作的时间，越来越多的涉及到数据结构和算法的知识。所以最近想重新复习一下这两门课的内容，数据结构和算法设计与分析。这些最基础的，对于一个程序员的提升也是最必要的。这大概就是程序员和工程师的区别吧。如果你想让自己的编程能力有质的飞跃，不再停留于调用现成的东西而是追求更完美的实现，那么这]]></description><category></category></item><item><title><![CDATA[利用Java发送短信的实现]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/72877817</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/72877817</guid><author>xiaobai66073</author><pubDate>Tue, 06 Jun 2017 14:22:38 +0800</pubDate><description><![CDATA[有时需要在项目中发送短信，今天就说一下我在实际中使用过的一个短信接口，提前说明一下，目前的的短信接口都是收费的，我这里利用java发送短信调用的中国网建平台的API接口。首先需要引入三个jar包，可在网上自行下载： 
commons-logging-1.1.1.jar 
commons-httpclient-3.1.jar 
commons-codec-1.4.jar代码实现如下：import ja]]></description><category></category></item><item><title><![CDATA[简单的java缓存类实现]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/72845713</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/72845713</guid><author>xiaobai66073</author><pubDate>Fri, 02 Jun 2017 16:40:39 +0800</pubDate><description><![CDATA[提到缓存，首先要说的就是缓存算法(淘汰算法)，常见算法有LRU、LFU和FIFO等算法，每种算法各有各的优势和缺点及适应环境。1、LRU(Least Recently Used ，最近最少使用) 
算法根据数据的最近访问记录来淘汰数据，其原理是如果数据最近被访问过，将来被访问的几概率相对比较高，最常见的实现是使用一个链表保存缓存数据，详细具体算法如下： 
1. 新数据插入到链表头部； 
2. 每当缓]]></description><category></category></item><item><title><![CDATA[Java项目中采用MD5加密数据库]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/71523462</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/71523462</guid><author>xiaobai66073</author><pubDate>Wed, 10 May 2017 14:10:38 +0800</pubDate><description><![CDATA[在项目开发中，为了安全考虑，往往需要将数据库中的某些字段进行加密处理，这里介绍一下采用MD5的加密算法。 
1、首先，写一个加密算法的工具类，代码如下：package com.siweisoft.utils.md5;
import java.security.MessageDigest;/**
 * Created by Robin on 2017-05-06.
 */
public class M]]></description><category></category></item><item><title><![CDATA[利用高德地图和腾讯地图的详细地址定位]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/70308120</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/70308120</guid><author>xiaobai66073</author><pubDate>Fri, 21 Apr 2017 09:23:26 +0800</pubDate><description><![CDATA[今天要说的基于浏览器的定位，是通过高德地图通过浏览器定位来获取经纬度，然后利用腾讯地图的逆地址解析，将经纬度解析为详细的地址。 
代码如下：<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" c]]></description><category></category></item><item><title><![CDATA[Spring MVC文件上传下载的三种方式]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/70212935</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/70212935</guid><author>xiaobai66073</author><pubDate>Mon, 17 Apr 2017 16:16:34 +0800</pubDate><description><![CDATA[最近在忙一些毕业设计和毕业论文的事，所以没有将过多的时间投入在博客中，今天才有时间记录一下在Spring MVC中的文件上传的三种方式。 
首先，不管是哪一种的上传方式，都需要在SpringMVC的配置文件中配置文件上传的相关参数。 
代码如下：<!-- 多部分文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.m]]></description><category></category></item><item><title><![CDATA[判断当前访问终端是PC端还是移动端]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/69373546</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/69373546</guid><author>xiaobai66073</author><pubDate>Thu, 06 Apr 2017 10:07:28 +0800</pubDate><description><![CDATA[有时候，在特定的情况下，虽然项目的PC端和移动端是同数据库，功能相同，但是页面的设计可能不尽相同，这就需要我们判断当前用户使用的是PC端还是移动端，以便我们准确的渲染页面。在这里，我们以不同终端退回登录页面为例，当session过期时，将自动退回到对应的登录页，拦截器的代码如下： @Override
    public boolean preHandle(HttpServletRequest re]]></description><category></category></item><item><title><![CDATA[Spring下多个quartz定时任务调度器的实现]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/66974112</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/66974112</guid><author>xiaobai66073</author><pubDate>Mon, 27 Mar 2017 17:40:11 +0800</pubDate><description><![CDATA[1、编写定时任务类，可以配置多个，这里只写一个；代码如下；package cn.hydom.ztc.ztc_cp.quartz;  import javax.annotation.Resource;  import org.apache.commons.logging.Log;  
import org.apache.commons.logging.LogFactory;  import cn.hy]]></description><category></category></item><item><title><![CDATA[动态初始化checkBox复选框及修改时赋值]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/63262707</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/63262707</guid><author>xiaobai66073</author><pubDate>Sat, 18 Mar 2017 17:44:18 +0800</pubDate><description><![CDATA[上次写了动态初始化select下拉框及修改时的赋值，这几天在开发过程中需要为CheckBox复选框进行动态加载并且赋值。最后的显示效果如下： 
首先是在页面上用ajax请求数据库的数据，将返回的数据拼接为html，动态渲染在页面上。 
代码如下： /*初始化角色配权限复选框*/
    $(function () {
        var roleExample = {}
        call]]></description><category></category></item><item><title><![CDATA[基于RBAC用户权限控制的校验]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/63253654</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/63253654</guid><author>xiaobai66073</author><pubDate>Sat, 18 Mar 2017 14:13:07 +0800</pubDate><description><![CDATA[在上一次的文章中，简单的说明了基于RBAC用户权限控制的菜单显示和表结构的设计，而往往在企业项目中，仅仅控制用户菜单是不够的，而是要控制到每一个按钮，也就是每一个请求。首先，用户权限校验的基本流程是，当用户登录成功后，将用户对应的权限存放在缓存中，用户每次发起一个请求时，在拦截器里面判断用户是否具有这个权限。第一步：拦截器的配置拦截器的配置是在spring-mvc.xml这个配置文件中的。 
代码如]]></description><category></category></item><item><title><![CDATA[钉钉实现企业级项目在微应用内的免登的流程]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/62234202</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/62234202</guid><author>xiaobai66073</author><pubDate>Wed, 15 Mar 2017 18:39:56 +0800</pubDate><description><![CDATA[最近项目的进度快接近尾声，需要将项目发布到钉钉里面以钉钉微应用的方式运行，需要打通免登接口和发送OA消息的接口，因为是第一次做，所以将免登流程整理在此。言归正传，首先我们需要在user表里加一个ding_userId字段，这个字段的值是企业级钉钉用户在钉钉企业群里面的一个唯一的userId,且不可更改，这个值是为了免登时换取用户的对象，下面的流程里会用到。（一）基本概述： 
钉钉中实现免登陆的核心思]]></description><category></category></item><item><title><![CDATA[简单的RBAC用户角色权限控制]]></title><link>https://blog.youkuaiyun.com/xiaobai66073/article/details/58588845</link><guid>https://blog.youkuaiyun.com/xiaobai66073/article/details/58588845</guid><author>xiaobai66073</author><pubDate>Tue, 28 Feb 2017 11:30:47 +0800</pubDate><description><![CDATA[Java web项目中，无论项目是大是小，或多或少都会涉及到用户访问权限的控制，权限管理总体的设计思路就是，不该看的不看，不该做的不做！据我目前的了解，我所知道的几种实现访问权限控制的方式有：JQuery的zTree设计权限树； 
权限框架shiro； 
基于角色的访问控制RBAC；这是我所知道的几种权限管理，如果有误或是还有其他的方法，望指正！ 
而今天我要说的就是基于角色的访问控制RBAC的权限]]></description><category></category></item></channel></rss>