<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qqllife的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qqllife</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qqllife]]></copyright><item><title><![CDATA[VUE的axios实现excel导出下载功能]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/79355025</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/79355025</guid><author>qqllife</author><pubDate>Fri, 23 Feb 2018 17:03:33 +0800</pubDate><description><![CDATA[//添加axios拦截器
axios.interceptors.response.use(function(res){
  if (res.headers &amp;amp;&amp;amp; (res.headers['content-type'] === 'application/x-msdownload' || res.headers['content-type'] === 'application/vnd...]]></description><category></category></item><item><title><![CDATA[判断线程池中的线程是否全部执行完毕]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/78792428</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/78792428</guid><author>qqllife</author><pubDate>Wed, 13 Dec 2017 15:25:53 +0800</pubDate><description><![CDATA[转载：http://www.cnblogs.com/stonefeng/p/5967451.html1、在使用多线程的时候有时候我们会使用 java.util.concurrent.Executors的线程池，当多个线程异步执行的时候，我们往往不好判断是否线程池中所有的子线程都已经执行完毕，但有时候这种判断却很有用，例如我有个方法的功能是往一个文件异步地写入内容，我需要在所有的子线程写入完毕后在文件]]></description><category></category></item><item><title><![CDATA[java通过反射+注解获取两个对象改变的内容]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/77247538</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/77247538</guid><author>qqllife</author><pubDate>Wed, 16 Aug 2017 14:38:56 +0800</pubDate><description><![CDATA[项目需要保存编辑日志，初始想法是每一个字段都判断一遍，后来发现每个类都要写一遍判断方法，如果增删字段会非常麻烦，最后的想法是通过注解+反射来完成这个判断首先，定义一个注解类package org.anno;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.]]></description><category></category></item><item><title><![CDATA[java通过反射获取对象的变量和变量值]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/77237969</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/77237969</guid><author>qqllife</author><pubDate>Wed, 16 Aug 2017 11:56:45 +0800</pubDate><description><![CDATA[在java中如果类的成员变量设置为私有的，一般情况下是不允许直接访问这个变量的，但是有了反射之后，就可以直接获取该变量的名称和变量值1.    访问成员变量（1）先定义一个用户实体类public class User {    private int id;
    private String name;
    private Date birth;    public Date getBirt]]></description><category></category></item><item><title><![CDATA[Activiti工作流部署异常]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/77094737</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/77094737</guid><author>qqllife</author><pubDate>Fri, 11 Aug 2017 11:22:02 +0800</pubDate><description><![CDATA[Spring在部署Activiti工作流时，发现始终无法创建processEngine，并且报空指针异常，检查spring的bean配置没有问题，然后检查数据库的act_ge_property中的初始化数据是否存在，初始化数据库时该表中应该包含三条记录。如果没有则Spring在部署应用时自动部署流程，查询该表数据不存在，于是出现异常中的NullPointerException。
附上缺少的数据sql]]></description><category></category></item><item><title><![CDATA[linux环境修改mysql密码]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/76381581</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/76381581</guid><author>qqllife</author><pubDate>Sun, 30 Jul 2017 14:10:40 +0800</pubDate><description><![CDATA[一，知道密码的情况下： 
首先，登陆mysqlmysql -u root -p然后执行set password命令set password for root@localhost = password('123456');二：忘记密码 
Mysql(Linux服务器)root用户密码忘记重置方法]]></description><category></category></item><item><title><![CDATA[Mysql权限控制 - 允许用户远程连接]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/76357515</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/76357515</guid><author>qqllife</author><pubDate>Sat, 29 Jul 2017 20:27:25 +0800</pubDate><description><![CDATA[Mysql为了安全性，在默认情况下用户只允许在本地登录，可是在有此情况下，还是需要使用用户进行远程连接，因此为了使其可以远程需要进行如下操作：一、允许root用户在任何地方进行远程登录，并具有所有库任何操作权限，具体操作如下：在本机先使用root用户登录mysql： mysql -u root -p”youpassword” 进行授权操作：mysql>GRANT ALL PRIVILEGES ON]]></description><category></category></item><item><title><![CDATA[linux服务器查看防火墙状态]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/76355079</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/76355079</guid><author>qqllife</author><pubDate>Sat, 29 Jul 2017 20:03:43 +0800</pubDate><description><![CDATA[在linux上部署项目的时候，发现tomcat启动了，但是项目还是访问不了，最后发现是防火墙的问题，在此记录一下。 
首先，查看防火墙的状态，service iptables status可以查看到iptables服务的当前状态，通过下图绿色部分可以看出当前防火墙的状态是开启的，我们也可以通过iptables  -L 命令来查看防火墙的规则。 
 
接下来就是启动和关闭防火墙： 1) 重启后生效]]></description><category></category></item><item><title><![CDATA[js事件委托]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/75418077</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/75418077</guid><author>qqllife</author><pubDate>Wed, 19 Jul 2017 17:01:28 +0800</pubDate><description><![CDATA[$(‘body’).on({click:function(){}); 
}},element)]]></description><category></category></item><item><title><![CDATA[JAVA判断移动端还是PC端访问]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/71108308</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/71108308</guid><author>qqllife</author><pubDate>Wed, 03 May 2017 11:15:12 +0800</pubDate><description><![CDATA[JAVA判断移动端还是PC端访问public class BrowserUtils {    // \b 是单词边界(连着的两个(字母字符 与 非字母字符) 之间的逻辑上的间隔),    
    // 字符串在编译时会被转码一次,所以是 "\\b"    
    // \B 是单词内部逻辑间隔(连着的两个字母字符之间的逻辑上的间隔)    
   private static final Str]]></description><category></category></item><item><title><![CDATA[java读取.properties配置文件的几种方法]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/62043183</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/62043183</guid><author>qqllife</author><pubDate>Tue, 14 Mar 2017 14:46:59 +0800</pubDate><description><![CDATA[转载：原文地址 http://www.cnblogs.com/s3189454231s/p/5626557.html读取.properties配置文件在实际的开发中使用的很多，总结了一下，有以下几种方法（仅仅是我知道的）：一.通过jdk提供的java.util.Properties类    此类继承自java.util.HashTable，即实现了Map接口，所以，可使用相应的方法来操作属性文件，但]]></description><category></category></item><item><title><![CDATA[队列实现异步--通过redis]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/57079633</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/57079633</guid><author>qqllife</author><pubDate>Sat, 25 Feb 2017 13:43:41 +0800</pubDate><description><![CDATA[假如有a,b,c,d四个事件，同步就是a,b,c,d四个事件全部做完才能返回；异步就是只做了a事件就可返回，b、c、d三个事件可以延后做，不关注具体做的时间。 
如上图：左侧Biz是一个总的入口，通过这个入口把各种事件放到队列里，右侧EventConsumer把队列中的事件取出，然后去找到对应的handle去处理这个事件。EventHandler是一个接口，使程序有更好地扩展性，LoginHandl]]></description><category></category></item><item><title><![CDATA[快速排序算法]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/55667749</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/55667749</guid><author>qqllife</author><pubDate>Sat, 18 Feb 2017 15:31:02 +0800</pubDate><description><![CDATA[转载，原文地址：http://blog.youkuaiyun.com/morewindows/article/details/6684558快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高，因此经常被采用，再加上快速排序思想—-分治法也确实实用，因此很多软件公司的笔试面试，包括像腾讯，微软等知名IT公司都喜欢考这个，还有大大小的程序方面的考试如软考，考研中也常常出现快速排序的身影。 
总的说]]></description><category></category></item><item><title><![CDATA[敏感词过滤]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/55003551</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/55003551</guid><author>qqllife</author><pubDate>Sun, 12 Feb 2017 19:06:05 +0800</pubDate><description><![CDATA[前缀树
• 根节点不包含字符，除根节点外每一个节点都只包含一个字符
• 从根节点到某一节点，路径上经过的字符连接起来，为该节点对应的字符串
• 每个节点的所有子节点包含的字符都不相同
假设有字符串abcdefghijk，敏感词设置为bc，be，def 
思路： 
（1）将敏感词建立前缀树，每一个敏感词的最后一个字都做一个标记。如图： 
 
（2）有三个变量begin，position，tempNod]]></description><category></category></item><item><title><![CDATA[通过UUID类获得一个随机字符串]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/54897277</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/54897277</guid><author>qqllife</author><pubDate>Mon, 06 Feb 2017 21:41:56 +0800</pubDate><description><![CDATA[UUID是指在一台机器上生成的数字，它保证对在同一时空中的所有机器都是唯一的。 
UUID是1.5中新增的一个类，在java.util下，用它可以产生一个号称全球唯一的ID.public static getUUID(){
    return UUID.randomUUID().toString().replaceAll("-","");
}]]></description><category></category></item><item><title><![CDATA[MD5加密算法]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/54897213</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/54897213</guid><author>qqllife</author><pubDate>Mon, 06 Feb 2017 21:34:57 +0800</pubDate><description><![CDATA[为了保证用户账号的安全性，使用MD5对用户密码加密public static String MD5(String key) {
        char hexDigits[] = {
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
        };]]></description><category></category></item><item><title><![CDATA[SpringBoot的Velocity模板文件]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/54883340</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/54883340</guid><author>qqllife</author><pubDate>Sun, 05 Feb 2017 21:45:25 +0800</pubDate><description><![CDATA[SpringBoot微框架的velocity模板文件默认目录：templates,文件名为xxx.vm,可以在application.properties文件修改模板的后缀，如spring.velocity.suffix=.html，默认为.vm 
Velocity模板语法（类似Java语法）$!{ 变量/表达式 }
## 注释 ## #* 多行注释 *#for
#foreach ($color i]]></description><category></category></item><item><title><![CDATA[SpringBoot的velocity自带工具类导入]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/54883165</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/54883165</guid><author>qqllife</author><pubDate>Sun, 05 Feb 2017 21:14:24 +0800</pubDate><description><![CDATA[SpringBoot结合velocity模板，可以通过toolbox来格式化时间 
在resources目录下新建toolbox.xml文件，添加如下代码<?xml version="1.0" encoding="UTF-8"?>
<toolbox>
    <tool>
        <key>date</key>
        <scope>application</scope>]]></description><category></category></item><item><title><![CDATA[SpringBoot集成MyBatis]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/54883109</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/54883109</guid><author>qqllife</author><pubDate>Sun, 05 Feb 2017 21:02:49 +0800</pubDate><description><![CDATA[SpringBoot集成MyBatis]]></description><category></category></item><item><title><![CDATA[分页效果]]></title><link>https://blog.youkuaiyun.com/qqllife/article/details/53304635</link><guid>https://blog.youkuaiyun.com/qqllife/article/details/53304635</guid><author>qqllife</author><pubDate>Wed, 23 Nov 2016 14:20:20 +0800</pubDate><description><![CDATA[<div class="Page">
    <c:choose>
        <c:when test="${currPage eq 1 }">
            <span class="grywhite">首页</span>
            <span class="grywhite">上一页</span>
        </c:when>
        <c:other]]></description><category></category></item></channel></rss>