<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小毛贼_哪里逃]]></title><description><![CDATA[学如逆水行舟]]></description><link>https://blog.csdn.net/qq_28497823</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_28497823]]></copyright><item><title><![CDATA[会签]]></title><link>https://blog.csdn.net/qq_28497823/article/details/115402145</link><guid>https://blog.csdn.net/qq_28497823/article/details/115402145</guid><author>qq_28497823</author><pubDate>Fri, 02 Apr 2021 17:08:39 +0800</pubDate><description><![CDATA[java代码生成用户任务
	

UserTask userTask = new UserTask();
// 流程名称
userTask.setName("会签任务");
userTask.setId(IdGenerator.createId());
//使用变量名assignee从变量中获取办理人
userTask.setAssignee("${assignee}");

//设置候选审批人：提供给执行监听器MultiInstanceExecutionListener使用
userTask.setCa..]]></description><category></category></item><item><title><![CDATA[任务列表，任务办理，转办任务，委派任务]]></title><link>https://blog.csdn.net/qq_28497823/article/details/115401136</link><guid>https://blog.csdn.net/qq_28497823/article/details/115401136</guid><author>qq_28497823</author><pubDate>Fri, 02 Apr 2021 16:25:18 +0800</pubDate><description><![CDATA[任务列表查询：

个人任务列表：

taskService.createTaskQuery().taskAssignee


候选人待签收任务列表：

List tasks = taskService.createTaskQuery().taskCandidateUser(userId).list();


候选组待签收任务列表：

List tasks = taskService.createTaskQuery().taskCandidateGroup(userGroup).list();


办理任务.]]></description><category></category></item><item><title><![CDATA[group_concat函数字符显示不全（被截取）]]></title><link>https://blog.csdn.net/qq_28497823/article/details/108452063</link><guid>https://blog.csdn.net/qq_28497823/article/details/108452063</guid><author>qq_28497823</author><pubDate>Mon, 07 Sep 2020 17:20:15 +0800</pubDate><description><![CDATA[解决方法一：修改MySQL的配置文件：


#需要设置的长度
group_concat_max_len = 5120

解决方法二：使用sql语句设置：


SET GLOBAL group_concat_max_len=5120;

SET SESSION group_concat_max_len=5120;



]]></description><category></category></item><item><title><![CDATA[@RequestBody忽略多余json字段]]></title><link>https://blog.csdn.net/qq_28497823/article/details/108325777</link><guid>https://blog.csdn.net/qq_28497823/article/details/108325777</guid><author>qq_28497823</author><pubDate>Mon, 31 Aug 2020 17:29:27 +0800</pubDate><description><![CDATA[@Configuration
public class Common {

    /**
     * jackson xml util
     * @return
     */
    @Bean
    public ObjectMapper objectMapper(){
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(DeserializationFeature.FA.]]></description><category></category></item><item><title><![CDATA[给feign的url增加get参数，实现验签功能]]></title><link>https://blog.csdn.net/qq_28497823/article/details/107636832</link><guid>https://blog.csdn.net/qq_28497823/article/details/107636832</guid><author>qq_28497823</author><pubDate>Tue, 28 Jul 2020 15:22:27 +0800</pubDate><description><![CDATA[需求：

使用feign代替httpclient生成http代理时，需要给每个url后增加验签的三个参数，如appKey,sign,时间戳等，写法如下：



@FeignClient(url = "${url}/xxx",name = "xxxFeign")


实现

1 写一个类继承feign.Client.Default并重写execute方法


import com.js.apiserver.util.endecryption.MD5Util;
import feign.Client;
imp.]]></description><category></category></item><item><title><![CDATA[mysql字段类型转java类型函数]]></title><link>https://blog.csdn.net/qq_28497823/article/details/107414024</link><guid>https://blog.csdn.net/qq_28497823/article/details/107414024</guid><author>qq_28497823</author><pubDate>Fri, 17 Jul 2020 17:40:45 +0800</pubDate><description><![CDATA[CREATE DEFINER=`root`@`%` FUNCTION `getJavaType`(sqlType VARCHAR(30)) RETURNS varchar(30) CHARSET utf8
    DETERMINISTIC
BEGIN
		DECLARE javaType VARCHAR(30);
		SET javaType=(
				CASE upper(sqlType)
						WHEN 'VARCHAR' THEN 'String'
						WHEN 'CHAR' TH.]]></description><category></category></item><item><title><![CDATA[mysql下划线转驼峰函数]]></title><link>https://blog.csdn.net/qq_28497823/article/details/107412993</link><guid>https://blog.csdn.net/qq_28497823/article/details/107412993</guid><author>qq_28497823</author><pubDate>Fri, 17 Jul 2020 17:07:57 +0800</pubDate><description><![CDATA[CREATE FUNCTION `underlineToCamel`(paramString VARCHAR(200)) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
begin
		set paramString = replace(paramString, '_a', 'A');
    set paramString = replace(paramString, '_b', 'B');
    set paramString = replac.]]></description><category></category></item><item><title><![CDATA[mysql获取表信息]]></title><link>https://blog.csdn.net/qq_28497823/article/details/107412617</link><guid>https://blog.csdn.net/qq_28497823/article/details/107412617</guid><author>qq_28497823</author><pubDate>Fri, 17 Jul 2020 16:57:06 +0800</pubDate><description><![CDATA[SELECT  
    TABLE_NAME 表名,
    COLUMN_NAME 列名,  
    COLUMN_TYPE 数据类型,  
    DATA_TYPE 字段类型,  
    CHARACTER_MAXIMUM_LENGTH 长度,  
    IS_NULLABLE 是否为空,  
    COLUMN_DEFAULT 默认值,  
    COLUMN_COMMENT 备注   
FROM  
    INFORMATION_SCHEMA.COLUMNS  
WHERE  
t.]]></description><category></category></item><item><title><![CDATA[mysql 多行单列结果合并，并去重函数]]></title><link>https://blog.csdn.net/qq_28497823/article/details/107144721</link><guid>https://blog.csdn.net/qq_28497823/article/details/107144721</guid><author>qq_28497823</author><pubDate>Sun, 05 Jul 2020 20:50:13 +0800</pubDate><description><![CDATA[GROUP_CONCAT(distinct 合并的列名) as 别名


]]></description><category></category></item><item><title><![CDATA[基于redis的zSet集合做数据缓存实现分页查询]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106835481</link><guid>https://blog.csdn.net/qq_28497823/article/details/106835481</guid><author>qq_28497823</author><pubDate>Thu, 18 Jun 2020 15:14:15 +0800</pubDate><description><![CDATA[需求场景：
	
最近公司要做手机页面展示新闻文章数据查询的优化工作，让我提个优化方案。现状是目前手机页面的数据请求系统后台，系统后台然后调用其他系统的接口，返回分页数据到前台展示，这样一来，用户每次下拉到页面底部加载更多数据都要调用其他接口，用户体验显然不是很好，那有没有更好的方案呢？

优化方案：redis正好适合在这种场景下使用，用户每次下拉到页面底部，此时从前台页面到系统后台分页（假如每次取10条）取数据，可以直接到redis里取数据，如果redis返回的数据为空或者小于你要取的10条...]]></description><category></category></item><item><title><![CDATA[mongodb springboot示例]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106604099</link><guid>https://blog.csdn.net/qq_28497823/article/details/106604099</guid><author>qq_28497823</author><pubDate>Sun, 07 Jun 2020 17:14:49 +0800</pubDate><description><![CDATA[学习网址：https://www.runoob.com/mongodb/mongodb-intro.html


	pom.xml
	

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http:]]></description><category></category></item><item><title><![CDATA[mongodb Linux安装]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106598782</link><guid>https://blog.csdn.net/qq_28497823/article/details/106598782</guid><author>qq_28497823</author><pubDate>Sun, 07 Jun 2020 12:00:55 +0800</pubDate><description><![CDATA[下载

wgethttps://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.13.tgz


解压

tar -zxvf mongodb-linux-x86_64-3.6.13.tgz


移动

mkdir /usr/local/mongodb

mv mongodb-linux-x86_64-3.6.13/ /usr/local/mongodb


加入环境变量

vim /etc/profile



MONGODB_HOME=/usr/lo..]]></description><category></category></item><item><title><![CDATA[抓包工具charles下载安装]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106544161</link><guid>https://blog.csdn.net/qq_28497823/article/details/106544161</guid><author>qq_28497823</author><pubDate>Thu, 04 Jun 2020 12:58:22 +0800</pubDate><description><![CDATA[https://blog.csdn.net/qq_35835118/article/details/94381177
]]></description><category></category></item><item><title><![CDATA[mysql共享锁和排他锁]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106419083</link><guid>https://blog.csdn.net/qq_28497823/article/details/106419083</guid><author>qq_28497823</author><pubDate>Fri, 29 May 2020 09:43:35 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/mr-wuxiansheng/p/7044733.html
]]></description><category></category></item><item><title><![CDATA[java多线程-Lock和Condition]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106407994</link><guid>https://blog.csdn.net/qq_28497823/article/details/106407994</guid><author>qq_28497823</author><pubDate>Fri, 29 May 2020 08:55:15 +0800</pubDate><description><![CDATA[Lock接口提供的synchronized关键字不具备的主要特性：


尝试非阻塞地获取锁：当前线程尝试获取锁，如果这一时刻锁没有被其他线程获取到，则成功获取并持有锁
	能被中断地获取锁：获取到锁的线程能够响应中断，当获取到锁的线程被中断时，中断异常将会被抛出，同时锁会被释放
	超时获取锁：在指定的截止时间之前获取锁， 超过截止时间后仍旧无法获取则返回


Lock接口基本的方法：



简单使用


import java.util.concurrent.locks.Condition;
import..]]></description><category></category></item><item><title><![CDATA[java多线程-线程状态]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106405623</link><guid>https://blog.csdn.net/qq_28497823/article/details/106405623</guid><author>qq_28497823</author><pubDate>Thu, 28 May 2020 15:16:04 +0800</pubDate><description><![CDATA[NEW：这种情况指的是，通过New关键字创建了Thread类（或其子类）的对象
	RUNNABLE：这种情况指的是Thread类的对象调用了start()方法，这时的线程就等待时间片轮转到自己这，以便获得CPU；第二种情况是线程在处于RUNNING状态时并没有运行完自己的run方法，时间片用完之后回到RUNNABLE状态；还有种情况就是处于BLOCKED状态的线程结束了当前的BLOCKED状态之后重新回到RUNNABLE状态。
	RUNNING：这时的线程指的是获得CPU的RUNNABLE线程，RUN...]]></description><category></category></item><item><title><![CDATA[java多线程-interrupt()]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106405406</link><guid>https://blog.csdn.net/qq_28497823/article/details/106405406</guid><author>qq_28497823</author><pubDate>Thu, 28 May 2020 15:11:06 +0800</pubDate><description><![CDATA[interrupt之中断状态标记
interrupt中断机制中有如下方法：
- Thread.interrupt()，设置当前中断标记为true（类似属性的set方法）
- Thread.isInterrupted()，检测当前的中断标记（类似属性的get方法）
- Thread.interrupted()，检测当前的中断标记，然后重置中断标记为false（类似属性的get方法+set方法）
因此interrupt中断机制并不是真正的将当前线程中断，而是一个中断标记的变化


示例：


public c.]]></description><category></category></item><item><title><![CDATA[Netty-自定义编码器和解码器]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106357112</link><guid>https://blog.csdn.net/qq_28497823/article/details/106357112</guid><author>qq_28497823</author><pubDate>Tue, 26 May 2020 15:25:03 +0800</pubDate><description><![CDATA[编码器
	

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

public class MyLongEncoder extends MessageToByteEncoder&lt;Long&gt; {
    @Override
    protected void encode(Chann..]]></description><category></category></item><item><title><![CDATA[Netty-ProtoBuf编码解码--多种类型传输]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106354008</link><guid>https://blog.csdn.net/qq_28497823/article/details/106354008</guid><author>qq_28497823</author><pubDate>Tue, 26 May 2020 13:15:35 +0800</pubDate><description><![CDATA[proto文件
	


syntax = "proto3";//声明使用proto3的语法
option optimize_for=SPEED;//加快解析
option java_package = "com.zeng.nio.netty.protoBuf2";//指定包名
option java_outer_classname = "DataInfo";//指定生成java类名

message Model{
    //申明一个枚举类型
    enum ModelType{
        St..]]></description><category></category></item><item><title><![CDATA[Netty-ProtoBuf编码解码]]></title><link>https://blog.csdn.net/qq_28497823/article/details/106347738</link><guid>https://blog.csdn.net/qq_28497823/article/details/106347738</guid><author>qq_28497823</author><pubDate>Tue, 26 May 2020 10:58:41 +0800</pubDate><description><![CDATA[IDEA安装插件
	





	mac电脑通过brew安装ptotoc命令
	

brew install protobuf

protoc --version



	pom增加依赖
	


&lt;dependency&gt;
    &lt;groupId&gt;com.google.protobuf&lt;/groupId&gt;
    &lt;artifactId&gt;protobuf-java&lt;/artifactId&gt;
    &lt;version&gt;3.7.1&l...]]></description><category></category></item></channel></rss>