自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 根据配置动态加载三方多数据源,支持热加载

集成多个第三方数据源,数据源配置从主数据库读取,并动态加载,能够支持在springboot+mybatis框架中编写查询mapper和xml,最终实现不同调用不同mapper,查询不同数据源的数据。

2024-01-16 17:15:09 480

原创 Flink CDC 实现Postgres到MySQL流式加工传输案例

案例实现文章的访问量统计使用FlinkPostgresCDC进行数据输入,在FlinkSQLCLI中进行逻辑加工,整个过程使用SQL,无需代码。将结果通过JDBC方式输出到MySQL。

2022-07-28 11:38:18 2189

原创 Flink PostgreSQL CDC配置和常见问题

Postgres的CDC源表(即Postgres的流式源表)用于依次读取PostgreSQL数据库全量快照数据和变更数据,保证不多读也不少读一条数据。即使发生故障,也能采用ExactlyOnce方式处理。idINT,PRIMARYKEY(`id`)NOTENFORCED--如果要同步的数据库表定义了主键,则这里也需要定义)WITH('connector'='postgres-cdc',--固定值'postgres-cdc'......

2022-07-28 11:13:33 8190 3

原创 JVM学习(三) 性能检测工具-JDK命令行工具

JDK 常用命令jps 虚拟机进程状况工具命令格式:jps [options] [hostid] options选项参数 hostid为RMI表中注册主机名主要选项: -q 只输出LVMID(本地虚拟机唯一ID),省略主类的名称 -m 输出虚拟机进程启动时传递给主类main() 函数的参数 -l 输出主类的全名,如果进程执行的时Jar 包,输出Jar 路径 -v 输出虚拟机进程启动时JVM参数示例:...

2021-01-22 18:13:18 207

原创 JVM学习(二) 垃圾收集器

内容来源于《深入理解Java虚拟机》-周志明Serial收集器单线程进行垃圾收集工作,使用复制算法。而且在工作时必须暂停其他所有工作线程,直到收集结束。适用:运行在Client模式下的虚拟机启用:-XX:+UseSerialGC运行机制:新老代搭配 Serial / Serial Old收集器,新生代采用复制算法,暂停所有用户线程;老年代采用标记-整理算法,暂停所有用户线程。ParNew收集器是Serial收集器的多线程版。适用:新生代垃圾收集...

2021-01-21 18:24:16 580

原创 JVM学习(一) 垃圾收集算法

内容来源于《深入理解Java虚拟机》-周志明判断对象存活算法1.引用计数算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器为0的对象就是不可能在被使用的。优点:实现简单,判断效率很高缺点:很难解决对象之间循环引用的问题2.可达性分析算法GC Roots 的对象作为起点,向下搜索,搜索走过的路径成为引用链,当一个对象到 GC Roots 没有任何引用链相连时,则证明此对象不可用。可作为GC Roots的对象包括:·

2021-01-21 18:15:43 88

原创 Jackson 序列化失败问题-oracle数据返回类型找不到对应的Serializer

Jackson在序列化List<Map>的类型数据时,由于未指定Map中的数据类型,因此,序列化时会自定匹配相应的数据类型,如果找不到相应的Serializer,就会序列化时出现异常。Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Direct self-reference leading to cycle (through reference chain: com.foresee.sdk.cl

2021-01-21 18:02:00 1377

原创 Request请求体重新封装,解决请求体只能获取一次的问题

Request请求体重新封装,解决请求体只能获取一次的问题问题解决方案定义一个ServletInputStreamWrapper定义一个过滤器,并对request进行包装问题在mvc架构中,经常会对接口进行拦截做一些权限校验,常用做法就是加入拦截器或过滤器,其中会提前获取post请求体,获取之后,controller方法上的参数就无法再获取的问题。解决方案定义一个ServletInputStreamWrapperServletInputStreamWrapper 是为了重新将请求体包装到HttpS

2020-11-09 10:07:44 1025

原创 mybatis-plus代码生成maven插件

为了在项目中快捷方便的代码生成,将mybatis-plus-generator封装为了一个maven的插件mybatis-plus-generator-maven-plugin,在要使用的项目pom文件引入该插件,执行mvn命令,即可直接生成代码到项目中,生成基于mybatis-plus的mapper、service、controller三层结构,包括entity实体类和mapper.xml文件...

2019-11-15 15:37:21 5346

原创 Java设计模式:静态代理、JDK动态代理和cglib动态代理

静态代理、JDK动态代理和cglib动态代理/** * 静态代理案例:增强猫(Cat的代理类) * 利用装饰者模式 * 要求:1.委托类、代理类必须实现共同的接口 2.代理类需要获得委托类的对象的引用 * * @author weiller * @version 1.0,2016-11-27 14:11:36 */public class StaticProxyDemo impl...

2019-09-17 15:15:59 338

原创 springcloud zuul源码分析:路由映射规则

路由映射是zuul网关的功能之一,本篇文章通过源码探索,看看它的映射规则是如何生效的。通过对zuul过滤器的了解,定位到映射规则逻辑是有PreDecorationFilter完成的(详细介绍可参考往期文章:springcloud zuul源码分析:内置过滤器)。PreDecorationFilter是一个前置装饰过滤器,它在路由之前将映射规则初始化完成,以供后续路由环节能够知道,该请求路径匹配...

2019-09-17 15:09:20 575

原创 springcloud zuul实践:自定义异常过滤器,统一异常响应格式

在springcloud项目中,网关发生异常时,响应内容并不是我们想要的格式,内容如下:{ "timestamp": 1481674980376, "status": 500, "error": "Internal Server Error", "exception": "java.lang.RuntimeException", "message": "Exist some ...

2019-09-16 16:04:48 1976

原创 springcloud zuul实践:自定义后置过滤器对响应结果封装

在springcloud项目中,会有以下需求场景,需要用到自定义后置过滤器。如:响应体内容操作。响应体统一封装、响应体加密等。日志记录。日志记录一般放置于后置过滤器,可以统计到完整的请求-响应信息。过滤器详细介绍可参考往期文章:springcloud zuul源码分析:内置过滤器因此,我们通过自定义一个前置过滤器,来实现权限认证的逻辑。首先继承抽象类ZuulFilter,实现fil...

2019-09-16 15:35:55 1866 2

原创 springcloud zuul实践:自定义前置过滤器进行权限认证

在springcloud项目中,权限认证逻辑一般放在请求路由之前,如果认证通过,则会执行route类型的过滤器,访问微服务获取数据。如果认证未通过,则要设置不进行路由,从而直接响应给客户端。过滤器详细介绍可参考往期文章:springcloud zuul源码分析:内置过滤器因此,我们通过自定义一个前置过滤器,来实现权限认证的逻辑。首先继承抽象类ZuulFilter,实现filterType(...

2019-09-16 15:07:24 888

原创 利用自定义注解,统计方法执行时间

项目中需要统计某些方法的执行时间,最简易的方式是方法执行前记录时间戳startTime,在方法结束前,用时间戳endTime-startTime得出该方法耗时。但是为了避免无代码侵入并实现通用,于是定义一个注解,如果要统计哪个方法,只需在方法上写上注解即可,通过注解可以获取到方法的参数、方法名、返回值等等信息。下面是一个简单的时间统计实现:1.定义一个注解TimeConsume该注解有...

2019-09-12 17:17:01 3584

原创 springcloud zuul源码分析:内置过滤器

springcloud项目中我们常常使用zuul作为网关,用它做一些路由分发、权限校验、统一异常处理、日志收集等等工作。而实现这些功能的重要组件就是它的过滤器ZuulFilter,本篇文章介绍zuul中内置的核心过滤器。1.ZuulFilter介绍我们自定义的每个过滤器都需要继承ZuulFilter才能被加载生效。它有四个重要的抽象方法需要重写。 public abstract Str...

2019-09-12 16:39:26 678

原创 简单的HTML快照生成,导出pdf或图片

一、利用 html2canvas实现HTML页面截图官方网址: https://html2canvas.hertzen.com/ GitHub:https://github.com/niklasvh/html2canvas1.HTML页面引入 html2canvas.min.js2.定义一个截图的触发按钮 <button onclick="exprotImg();">导出...

2019-09-11 17:35:17 2928

原创 HTML导出pdf或图片,支持模拟跳过登陆验证

项目经常用到把当前页面导出为pdf,或者生成某个页面或部分的快照。如果是简单的页面快照,不没有太多的渲染,可以用html2canvas.min.js导出图片或者html2pdf.bundle.min.js导出为pdf,仅仅在前端就可以完成。但是复杂的页面,以上的导出效果不好,质量也不高。因此我采用PhantomJS,用后台生成pdf、png等进行导出。1.PhantomJS简介Phantom...

2019-09-11 17:22:14 1113 1

原创 在线sql编辑查询工具sql-editor

sql-editor是基于CodeMirror的一个在线sql编辑工具,模仿navicat工具,开发的一个简易版。目前只提供前端代码,由easy-mock提供json测试数据。Github地址: https://github.com/xiweile/sql-editor博客:https://www.weiller.cn/功能更新左侧提供数据库表字段树形结构,可拖拽到sql编辑...

2019-07-19 19:33:07 28531 8

原创 一个基于jquery的仿vue的简易js模板(支持ie8)

现在的项目大部分都是前后端分离的模式,作为后端开发者,喜欢用一些成熟的前端框架(如:layui)方便开发,尤其在前端工程师紧缺的情况下,后端开发者可以容易入手,后来又引入了vue.js使原有的HTML数据渲染和js动态操作更加快捷。但是在一次政府项目中,要求浏览器支持到ie8,这样vue支持的不好,因此将原来的vue写法改成原始jquery写法,为了改动最小化,便写了一个简单js,用于支持模板替...

2019-07-19 19:26:50 1250 1

原创 根据ip地址获取地理位置及坐标(离线方式)

根据ip获取地理位置信息,不用http和webservice接口,减少请求时间。我们可以利用了GeoLite2库,GeoLite2 数据库是一个免费的 IP 地理定位数据库,GeoLite2 Country 与 City 数据库在每月的第一个周二更新。GeoLite2 ASN 数据库的更新时间为每周二。数据库下载 :https://dev.maxmind.com/zh-hans/geoip...

2018-09-21 13:54:01 12060 4

原创 数据驱动hive-jdbc 数据精度问题

出现问题:mybatis作为dao框架,利用hive-jdbc驱动,连接hive数据源,查询结果集的decimal类型数据 失去小数点后的值,导致数据精度问题。如下是hive驱动的相关包和数据源配置&lt;!-- hive连接驱动开始 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.hadoop&lt;/groupId&g...

2018-09-13 11:30:38 1106

原创 cas单点登录 (二) 客户端与springboot集成

在springboot项目中实现cas单点登录统一认证,只需要在项目中配置 cas过滤器即可使用

2018-09-13 11:07:11 7221 12

原创 cas单点登录 (一) 服务端安装、配置部署与认证访问

cas 版本使用 5.2x1.服务安装cas服务安装(含秘钥生成)  本篇不介绍,可参考 https://blog.csdn.net/yelllowcong/article/details/788054202.下载cas服务端maven版 cas-overlay-template  当前版本5.2.x ,要求jdk8+下载地址: https://github.com/apereo/...

2018-09-13 10:48:30 4515 2

原创 基于自定义注解的spring aop拦截与参数获取

       为了对某些接口访问进行权限校验,尝试用通过自定义注解对需要校验的Controller方法进行拦截,可获取方法上的参数、@requestMapping注解参数(uri、method等),根据这些参数确定唯一资源,通过校验逻辑来管理是否执行该方法的执行以及自定义返回消息提示给前端。1.定义切点,自定义一个名为ValidateOnAccess 的注解package com.wei...

2018-09-13 10:13:42 3184

原创 Logback日志输出到mongodb

将logback日志通过logback 自定义Appender组件输出到目标库中,以MongoDB为例 1.引入相关pom坐标,如果是springboot项目可以只需引入 mongodb的依赖,因为springboot本身默认使用logback&lt;dependency&gt; &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt; &lt;...

2018-09-12 17:45:23 4147 1

mybatis-plus-generator-maven-plugin-1.0.0依赖的pom.xml

mybatis-plus-generator-maven-plugin-v1.0.0依赖的pom.xml,用于mybatis-plus-generator-maven-plugin-1.0.0.jar本地仓库上传时依赖使用

2019-11-15

mybatis-plus-generator-maven-plugin-1.0.0.jar

为了在项目中快捷方便的代码生成,将mybatis-plus-generator封装为了一个maven的插件`mybatis-plus-generator-maven-plugin。使用文档参考:https://blog.csdn.net/xiweiller/article/details/103072165

2019-11-15

sql-editor.rar

基于CodeMirror的一个在线sql编辑工具,模仿navicat工具,开发的一个简易版。

2019-07-19

空空如也

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

TA关注的人

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