自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小毛贼_哪里逃

学如逆水行舟

  • 博客(165)
  • 资源 (1)
  • 收藏
  • 关注

原创 会签

java代码生成用户任务 UserTask userTask = new UserTask();// 流程名称userTask.setName("会签任务");userTask.setId(IdGenerator.createId());//使用变量名assignee从变量中获取办理人userTask.setAssignee("${assignee}");//设置候选审批人:提供给执行监听器MultiInstanceExecutionListener使用userTask.setCa..

2021-04-02 17:08:39 719

原创 任务列表,任务办理,转办任务,委派任务

任务列表查询:个人任务列表:taskService.createTaskQuery().taskAssignee候选人待签收任务列表:List tasks = taskService.createTaskQuery().taskCandidateUser(userId).list();候选组待签收任务列表:List tasks = taskService.createTaskQuery().taskCandidateGroup(userGroup).list();办理任务.

2021-04-02 16:25:18 2191

原创 group_concat函数字符显示不全(被截取)

解决方法一:修改MySQL的配置文件:#需要设置的长度group_concat_max_len = 5120解决方法二:使用sql语句设置:SET GLOBAL group_concat_max_len=5120;SET SESSION group_concat_max_len=5120;

2020-09-07 17:20:15 923 1

原创 @RequestBody忽略多余json字段

@Configurationpublic class Common { /** * jackson xml util * @return */ @Bean public ObjectMapper objectMapper(){ ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FA.

2020-08-31 17:29:27 2215

原创 给feign的url增加get参数,实现验签功能

需求:使用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.

2020-07-28 15:22:27 2226

原创 mysql字段类型转java类型函数

CREATE DEFINER=`root`@`%` FUNCTION `getJavaType`(sqlType VARCHAR(30)) RETURNS varchar(30) CHARSET utf8 DETERMINISTICBEGIN DECLARE javaType VARCHAR(30); SET javaType=( CASE upper(sqlType) WHEN 'VARCHAR' THEN 'String' WHEN 'CHAR' TH.

2020-07-17 17:40:45 332

原创 mysql下划线转驼峰函数

CREATE FUNCTION `underlineToCamel`(paramString VARCHAR(200)) RETURNS varchar(200) CHARSET utf8 DETERMINISTICbegin set paramString = replace(paramString, '_a', 'A'); set paramString = replace(paramString, '_b', 'B'); set paramString = replac.

2020-07-17 17:07:57 2425

原创 mysql获取表信息

SELECT TABLE_NAME 表名, COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注 FROM INFORMATION_SCHEMA.COLUMNS WHERE t.

2020-07-17 16:57:06 134

原创 mysql 多行单列结果合并,并去重函数

GROUP_CONCAT(distinct 合并的列名) as 别名

2020-07-05 20:50:13 1161

转载 基于redis的zSet集合做数据缓存实现分页查询

需求场景: 最近公司要做手机页面展示新闻文章数据查询的优化工作,让我提个优化方案。现状是目前手机页面的数据请求系统后台,系统后台然后调用其他系统的接口,返回分页数据到前台展示,这样一来,用户每次下拉到页面底部加载更多数据都要调用其他接口,用户体验显然不是很好,那有没有更好的方案呢?优化方案:redis正好适合在这种场景下使用,用户每次下拉到页面底部,此时从前台页面到系统后台分页(假如每次取10条)取数据,可以直接到redis里取数据,如果redis返回的数据为空或者小于你要取的10条...

2020-06-18 15:14:15 5406

原创 mongodb springboot示例

学习网址:https://www.runoob.com/mongodb/mongodb-intro.html pom.xml <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:

2020-06-07 17:14:49 138

原创 mongodb Linux安装

下载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/mongodbmv mongodb-linux-x86_64-3.6.13/ /usr/local/mongodb加入环境变量vim /etc/profileMONGODB_HOME=/usr/lo..

2020-06-07 12:00:55 147 1

转载 抓包工具charles下载安装

https://blog.csdn.net/qq_35835118/article/details/94381177

2020-06-04 12:58:22 412

原创 mysql共享锁和排他锁

https://www.cnblogs.com/mr-wuxiansheng/p/7044733.html

2020-05-29 09:43:35 142

原创 java多线程-Lock和Condition

Lock接口提供的synchronized关键字不具备的主要特性:尝试非阻塞地获取锁:当前线程尝试获取锁,如果这一时刻锁没有被其他线程获取到,则成功获取并持有锁 能被中断地获取锁:获取到锁的线程能够响应中断,当获取到锁的线程被中断时,中断异常将会被抛出,同时锁会被释放 超时获取锁:在指定的截止时间之前获取锁, 超过截止时间后仍旧无法获取则返回Lock接口基本的方法:简单使用import java.util.concurrent.locks.Condition;import..

2020-05-29 08:55:15 277

原创 java多线程-线程状态

NEW:这种情况指的是,通过New关键字创建了Thread类(或其子类)的对象 RUNNABLE:这种情况指的是Thread类的对象调用了start()方法,这时的线程就等待时间片轮转到自己这,以便获得CPU;第二种情况是线程在处于RUNNING状态时并没有运行完自己的run方法,时间片用完之后回到RUNNABLE状态;还有种情况就是处于BLOCKED状态的线程结束了当前的BLOCKED状态之后重新回到RUNNABLE状态。 RUNNING:这时的线程指的是获得CPU的RUNNABLE线程,RUN...

2020-05-28 15:16:04 212

原创 java多线程-interrupt()

interrupt之中断状态标记interrupt中断机制中有如下方法:- Thread.interrupt(),设置当前中断标记为true(类似属性的set方法)- Thread.isInterrupted(),检测当前的中断标记(类似属性的get方法)- Thread.interrupted(),检测当前的中断标记,然后重置中断标记为false(类似属性的get方法+set方法)因此interrupt中断机制并不是真正的将当前线程中断,而是一个中断标记的变化示例:public c.

2020-05-28 15:11:06 158

原创 Netty-自定义编码器和解码器

编码器 import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandlerContext;import io.netty.handler.codec.MessageToByteEncoder;public class MyLongEncoder extends MessageToByteEncoder<Long> { @Override protected void encode(Chann..

2020-05-26 15:25:03 597

原创 Netty-ProtoBuf编码解码--多种类型传输

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..

2020-05-26 13:15:35 705 2

原创 Netty-ProtoBuf编码解码

IDEA安装插件 mac电脑通过brew安装ptotoc命令 brew install protobufprotoc --version pom增加依赖 <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.7.1&l...

2020-05-26 10:58:41 372

原创 Netty-介绍

参考:https://www.cnblogs.com/huxiaoyun90/archive/2013/06/05/3118866.html

2020-05-25 14:52:22 106

原创 Netty-WebSocket示例2

服务端 import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.Soc..

2020-05-25 14:42:50 185

原创 多处理器模式

当需要根据实体类型来作出相对的处理的时候,我们可以使用此模式来减化if else语句 测试controller @RestControllerpublic class TestController { @Autowired private IService service; @GetMapping("/1") public String test1(){ Entity1 entity1=new Entity1(1); ...

2020-05-22 11:08:38 208

原创 Oracle - 获取表的列名

select COLUMN_NAME from user_tab_columns WHERE TABLE_NAME = '表名';

2020-05-22 08:38:46 150

原创 Netty-http服务器

服务启动端 import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServerSocketChannel;public class Htt..

2020-05-21 13:45:10 159

原创 Netty-Future Listener机制示例

Listener接口public interface Listener { public void operationComplete(int x);}异步执行时返回Future对象import java.util.ArrayList;import java.util.List;public class FutureOperationComplete { private List<Listener> listeners=new ArrayList(); ..

2020-05-21 11:02:54 587

原创 Netty-WebSocket示例1

依赖 <dependencies> <!--netty的依赖集合,都整合在一个依赖里面了--> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final</version> </d..

2020-05-19 10:29:17 158

原创 Maven配置默认使用的JDK版本

在项目中的pom.xml指定jdk版本 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version..

2020-05-19 09:06:24 565

原创 Netty-心跳与空闲检测

网络问题 连接假死的现象是:在某一端(服务端或者客户端)看来,底层的 TCP 连接已经断开了,但是应用程序并没有捕获到,因此会认为这条连接仍然是存在的,从 TCP 层面来说,只有收到四次握手数据包或者一个 RST 数据包,连接的状态才表示已断开。 空闲检测 服务端:只需要检测一段时间内,是否收到过客户端发来的数据即可,Netty 自带的IdleStateHandler就可以实现这个功能。public class MyIdleStateHandler extends ...

2020-05-18 16:53:56 795

原创 Netty-性能优化

共享 handler--处理器修改为单例模式 serverBootstrap .childHandler(new ChannelInitializer<NioSocketChannel>() { protected void initChannel(NioSocketChannel ch) { ch.pipeline().addLast(new XXXHander(..

2020-05-18 16:25:06 757

原创 Netty-单聊和群聊

单聊 public class SessionUtil { // userId -> channel 的映射 private static final Map<String, Channel> userIdChannelMap = new ConcurrentHashMap<>(); public static void bindSession(Session session, Channel channel) { ...

2020-05-18 15:31:00 767

原创 Netty-ChannelHandler 的热插拔机制

public class UseOnceHandel extends ChannelInboundHandlerAdapter { public static final AttributeKey<Boolean> USED = AttributeKey.newInstance("Used"); @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Excepti.

2020-05-18 15:03:58 291

原创 Netty-channelHandler 的生命周期

ChannelHandler 回调方法的执行顺序 handlerAdded()当检测到新连接之后,调用ch.pipeline().addLast(new XXXHandler());之后的回调 channelRegistered() 当前的 channel 的所有的逻辑处理已经和某个 NIO 线程建立了绑定关系 channelActive() channel 的 pipeline 中已经添加完所有的 handler,并且绑定好一个 NIO 线程之后,这条连接算是真正激活了,接下来就会...

2020-05-18 13:56:31 2434

原创 Netty-粘包半包:拆包器(编码器和解码器)

粘包半包 粘包:多个字符串“粘”在了一起,这种 ByteBuf 为粘包半包:一个字符串被“拆”开,形成一个破碎的包,这种 ByteBuf 为半包 拆包 我们需要知道,尽管我们在应用层面使用了 Netty,但是对于操作系统来说,只认 TCP 协议,尽管我们的应用层是按照 ByteBuf 为 单位来发送数据,但是到了底层操作系统仍然是按照字节流发送数据,因此,数据到了服务端,也是按照字节流的方式读入,然后到了 Netty 应用层面,重新拼装成 ByteBuf,而这里的 ByteB..

2020-05-18 12:00:35 475

原创 Netty-内置的 ChannelHandler

ChannelInboundHandlerAdapter public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { ctx.fireChannelRead(msg);}接收上一个 handler 的输出,这里的msg就是上一个 handler 的输出。默认情况下 adapter 会通过fireChannelRead()方法直接把上一个 handler 的输出结果传递到下...

2020-05-18 10:34:35 1083

原创 Netty入门-pipeline 与 channelHandler

pipeline 与 channelHandler 的构成 无论是从服务端来看,还是客户端来看,在 Netty 整个框架里面,一条连接对应着一个 Channel,这条 Channel 所有的处理逻辑都在一个叫做ChannelPipeline的对象里面,ChannelPipeline是一个双向链表结构,他和 Channel 之间是一对一的关系。ChannelPipeline里面每个节点都是一个ChannelHandlerContext对象,这个对象能够拿到和 Channel 相...

2020-05-15 16:15:10 303 1

转载 Netty入门-通信协议编解码

设计通信协议 首先,第一个字段是魔数,通常情况下为固定的几个字节(我们这边规定为4个字节)。 为什么需要这个字段,而且还是一个固定的数?假设我们在服务器上开了一个端口,比如 80 端口,如果没有这个魔数,任何数据包传递到服务器,服务器都会根据自定义协议来进行处理,包括不符合自定义协议规范的数据包。例如,我们直接通过http://服务器ip来访问服务器(默认为 80 端口), 服务端收到的是一个标准的 HTTP 协议数据包,但是它仍然会按照事先约定好的协议来处理 HTTP 协议...

2020-05-15 14:43:22 360

原创 Netty入门-ByteBuf

ByteBuf结构 ByteBuf 是一个字节容器,容器里面的的数据分为三个部分,第一个部分是已经丢弃的字节,这部分数据是无效的;第二部分是可读字节,这部分数据是 ByteBuf 的主体数据, 从 ByteBuf 里面读取的数据都来自这一部分;最后一部分的数据是可写字节,所有写到 ByteBuf 的数据都会写到这一段。最后一部分虚线表示的是该 ByteBuf 最多还能扩容多少容量 以上三段内容是被两个指针给划分出来的,从左到右,依次是读指针(readerIndex)、写指针(writerIn..

2020-05-15 13:22:43 913

原创 Netty入门-客户端与服务端双向通信

服务端启动并指定连接数据读写逻辑 import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.chann..

2020-05-15 10:54:51 245

原创 Netty入门-客户端

服务端代码(解释以注释的形式体现):设置步骤:线程模型、IO模型,IO业务处理逻辑,连接import io.netty.bootstrap.Bootstrap;import io.netty.channel.Channel;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelOption;import io.net

2020-05-15 09:59:35 149

pdfbox画圆和圆角矩形

对pdfbox-2.0.2的扩展工具类,支持画圆和圆角矩形,其它扩展写了再更新吧 QQ:454028252

2016-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除