自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 企业微信发消息通知-java

一个企业微信webhook机器人javaSDK,配置好webhook地址之后就可以快速方便发送消息,摒弃了各种参数的拼接,用面向对象的方式来优雅的发送提醒文本消息图片消息文本卡片消息图文消息(批量)markdown消息。...

2022-08-07 19:14:09 896

原创 xxl-job的使用

使用简单快捷,配置不多,同时解耦了代码,挺不错的。闲来无事,看下分布式任务调度中心xxl-job。

2022-08-07 19:09:35 1167

原创 idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目

1、报错java: 找不到符号 符号: 变量 log。2、转换成Maven项目。

2022-08-07 18:55:13 258

原创 策略模式介绍与实际应用

策略模式的定义与特点策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。策略模式的主要优点如下。多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句,如 if…else 语句、switch…case 语句。策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到

2022-04-26 11:31:32 583

原创 fastjson中使用SerializeFilter下的SimplePropertyPreFilter使用/忽略指定属性

接口按需序列化返回指定字段方式,可使用SerializeFilter下的SimplePropertyPreFilter配合注解实现。getIncludes()保留字段getExcludes()忽略字段eg:1、字段依赖注解package cn.annotation;import java.lang.annotation.*;/** * * @Date: 2022/04/20/10:04 * @Description: */@Documented@Target(ElementT

2022-04-20 11:25:23 1018

原创 git代码冲突解决

A分支merge到B分支发现有代码冲突,不可直接在git上点击Resolve conflicts如果B分支为多个开发分支敏捷开发合并的分支(eg:dev or test 、uat、master)那么会导致B分支代码回合到A分支,导致代码污染,A分支代码拥有C、D…同级别分支并行开发的代码。解决方式:本地解决冲突并merge1、new branch 创建一个本地解决代码的分支 eg:(1.0.1 merge to dev)fix_1.0.1_merge_dev2、idea切换至fix_1.0.1_

2022-04-14 13:42:48 619

转载 mysql将一张表某字段赋值另一张表

需求:把一个表某个字段内容复制到另一张表的某个字段。实现sql语句1:复制代码代码如下:UPDATE file_manager_folder f1LEFT OUTER JOIN file_manager_folder f2ON f1.name = f2.name AND f2.parentId = 54SET f1.parentId = 54WHERE f2.name IS NULL AND f1.id IN (1,2,3);实现sql语句2:复制代码代码如下:update B set

2021-01-15 11:13:05 3382

原创 定时任务

由于当时缓存服务链路比较长,所以canal挂了,可能会有日志丢失导致部分数据没能同步,考虑在kafka增加定时全量同步方法,不用每次服务启动都重新刷一次数据,使用的是每天3点定时刷接口。package com.xiniaoyun.shared.kafka.common.timer;import com.xiniaoyun.shared.kafka.sys.dto.InitDTO;import com.xiniaoyun.shared.kafka.sys.web.DataSynController;

2020-10-28 14:32:00 133

原创 服务的性能瓶颈

影响服务的性能因素有很多,我这里简单聊一下。通常随着业务扩展数据量增加和并发增大,会出现接口吞吐量降低,接口访问时间增加,数据库压力过大,出现宕机或者性能明显降低。首先优化点可以考虑代码层面:1、代码是否存在I/O循环调用、方法使用不当(比如简单for、增强for抑或stream流使用)等问题。2、代码中逻辑是不是太过复杂,一个搜索接口中又调用其他搜索接口,查看是否可以拆分成多个单搜索(这个需要和业务方进行沟通)3、sql是否存在容易导致索引失效的问题,导致全表搜索。这个网上关于此问题有很多(比如

2020-10-28 14:22:30 454

转载 缓存穿透、缓存击穿、缓存雪崩区别和解决方案

一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;从缓存取不到的数据,在数据库中也没有取到,这

2020-07-08 14:34:24 99

原创 关于redis多条件检索的解决方案

1、一次查询,二次判断1、获取所有匹配到key:value1的值2、获取到的所有值根据第二条件value2进行后端代码再筛选获取真正需要返回的值,返回给用户2、二次查询,找交集(查询效率会有问题)1、如果改HeliosCacheInputField中inputInstance改为list那么相关联项目要改动的就会比较多。如果不改动,依旧是string类型,那么就要考虑使用符号切割问题,切开之后两个inputInstance,组成 两个key:value,2

2020-07-03 14:58:54 4427

原创 Stream Pipelines

Stream Pipelines首先回顾一下容器执行Lambda表达式的方式,以ArrayList.forEach()方法为例,具体代码如下:// ArrayList.forEach()public void forEach(Consumer<? super E> action) {…for (int i=0; modCount == expectedModCount && i < size; i++) {action.accept(elementData[i]

2020-07-03 14:56:34 269

原创 如何选择Arrays.asList()、Collections.singletonList()?

Arrays.asList()、Collections.singletonList()Arrays.asList(strArray)返回值是仍然是一个可变的集合,但是返回值是其内部类,不具有add方法,可以通过set方法进行增加值,默认长度是10Collections.singletonList()返回的是不可变的集合,但是这个长度的集合只有1,可以减少内存空间。但是返回的值依然是Collections的内部实现类,同样没有add的方法,调用add,set方法会报错java.lang.Unsuppor

2020-06-16 17:06:24 2975

原创 三目运算符NPE

复合三目运算符问题:a?b:c?d:e条件运算符是右结合的,也就是说,从右向左分组计算。例如,a?b:c?d:e 将按a?b:(c?d:e)执行,从右向左计算,先(c?d:e)再a?b:(c?d:e)。注意使用过程中,引起的自动拆箱引起的NPE异常:当第二位和第三位表达式都是包装类型的时候,该表达式的结果才是该包装类型,否则,只要有一个表达式的类型是基本数据类型,则表达式得到的结果都是基本数据类型。如果结果不符合预期,那么编译器就会进行自动拆箱。boolean flag = true; boo

2020-05-21 15:42:33 510

原创 oauth2

1.什么是OAuth2OAuth 2.0是用于授权的行业标准协议。OAuth 2.0致力于简化客户端开发人员的工作,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。是开放授权的一个标准,允许用户授权B应用不提供帐号密码的方式去访问该用户在A应用服务器上的某些特定资源。OAuth2是用于REST/APIs的代理授权框架(delegated authorization framework)是基于令牌Token的授权,在无需暴露用户密码的情况下,是应用能获取对用户数据有限访问权限

2020-05-21 10:35:20 321

转载 ES学习

题记:Elasticsearch研究有一段时间了,现特将Elasticsearch相关核心知识、原理从初学者认知、学习的角度,从以下9个方面进行详细梳理。欢迎讨论……带着问题上路——ES是如何产生的?(1)思考:大规模数据如何检索?如:当系统数据量上了10亿、100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题:1)用什么数据库好?(mysql、sybase、oracle、达梦、神通、mongodb、hbase…)2)如何解决单点故障;(lvs、F5、A10、Zookeep、MQ

2020-05-20 15:30:30 296

原创 Integer解读

涉及自动装箱和拆箱的过程。源码:1、使用自动装箱(Integer i = 1)方式创建Integer对象时,会使用valueOf进行Integer对象的初始化,此时,会调用IntegerCache.high,这是需要对IntegerCache这个静态内部类进行初始化。2、IntegerCache类中有一个cache数组,在加载IntegerCache的时候,会将-128到127的Int...

2020-04-23 16:56:34 1283

原创 大数据量插入数据库

大数据量下,提高插入速度的方法。1、Java代码方面,使用多线程插入,并且使用批处理提交。2、数据库方面,表结构建立时不要使用索引,要不然插入过程过还要维护索引B+树;修改存储引擎,一般默认是InnoDB.3、合并数据+事务的方法在较小数据量时,性能提高是很明显的,数据量较大时(1千万以上),性能会急剧下降,这是由于此时数据量超过了innodb_buffer的容量,每次定位索引涉及较多的磁盘...

2020-04-23 15:34:15 2147

原创 项目工程代码质量检测——SonarQube

SonarQube是什么SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。 通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse和 IntelliJ IDEA 这些工具里联机查看结果;同时 ...

2020-04-13 15:19:39 3181

原创 win本地端口被占用

win本地端口被占用:1.netstat -ano|findstr 82002.taskkill /f /t /im 8200查看占用程序tasklist | findstr 8200

2020-04-09 18:34:32 251

原创 Error running 'Application': command line is too long的两种解决方式

第一种方式:这个属性因该是是为整个项目配置自动缩短命令行。第二种方式:

2020-04-09 16:23:02 27379 3

原创 Redis相关

Redis操作切换几号库使用 select num。一、key pattern 查询相应的key  (1)redis允许模糊查询key  有3个通配符 、?、[]  (2)randomkey:返回随机key    (3)type key:返回key存储的类型  (4)exists key:判断某个key是否存在 存在1,不存在-1  (5)del key:删除key  (6)re...

2020-04-09 16:09:25 106

原创 sql的xml文件中时间范围判断应该注意的点

LocalDateTime时间范围xml中判断方式:1、AND t1.last_modified_date >=#{p.lastModifiedDateStart}AND t1.last_modified_date <=#{p.lastModifiedDateEnd}2、AND t1.last_modified_date <![CDATA[>=]]> #{p...

2020-04-09 16:05:37 2602 2

原创 部分注解与乐观锁

@TableLogic表逻辑处理注解(逻辑删除)效果:在字段上加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改例:实体类:      @TableLogic      private Integer del;service层:      调用BaseMapper的deleteById(id);执行是效果:加@TableLogic的情况下走 Update ...

2020-04-08 10:00:18 188

原创 IDEA常用插件整理

1.GenerateAllSetter自动生成类set方法2.GsonFormat根据JSON创建实体3.Lombok plugin简化代码4. .ignore忽略git提交文件5.Alibaba Java Coding Guidelines代码质量7、CodeGlance代码小地图8.Translation翻译插件9.Grep Console控制台颜色控制10.F...

2020-04-08 09:57:23 853

转载 mybatis

mybatis写update时,正常是set了值才会进行update操作,我们一般是这样写:SAMPLE_BATCH_NO =#{sampleBatchNo,jdbcType=VARCHAR},1、 String类型是符合的,但是如果是Integer类型的话,mybatis会将i==0的值也认定为空字符串。所以如果是Integer类型只需要判断!= null即可2、如果String类型...

2020-04-03 15:20:28 373

原创 Cloud的健康检查

SpringCloud启动控制台有时候会报健康检查问题的错,虽然不影响项目正常访问,不过强迫症还是想消除他们。Springboot内嵌了很多的健康检查。db,redis等等。Spring boot的健康信息都是从ApplicationContext中的各种HealthIndicatorBeans中收集到的,Spring boot框架中包含了大量的HealthIndicators的实现类,当然...

2020-04-03 14:36:03 224

原创 Git-flow分支管理与Aone-flow分支管理对比

git-flow分支管理:master: 主分支,主要用来版本发布。hotfix:线上 bug 紧急修复用到的临时分支。这个分支用来修复主线master的BUGrelease(预发布分支):release 分支可以认为是 master 分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release 分支,测试没有问题并且到了发布日期就合并到 maste...

2020-04-03 10:32:07 6378

原创 设计模式的思想

1.策略者模式特点:高内聚低耦合eg:定义一个接口A,两个实现A接口的类b和c,一个策略包类d。b和c分别重写A中方法。d中私有一个变量;有参构造d,根据入参(b或c对象)不同 决定使用哪个对象;方法(当前对象调用)试用 d dd = new d(new b); b.方法;2.代理模式spring AOP中有使用。简单说又叫中介模式,多个实现同一接口的类 ,其中一个是代理者 代替其...

2019-03-15 14:48:03 376

原创 ueditor编辑器的简单使用(java)

首先去官网下载百度编辑器:地址:https://ueditor.baidu.com/website/download.html查看API,另外可根据自己需求添加需要的插件,解压,放入maven工程的位置:/项目名/src/main/webapp/这里我放在然后前端页面引入:&lt;script type="text/javascript" charset="utf-8" src...

2019-01-24 16:22:34 535

转载 pl/sql破解

product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3leserial Number:226959password: xs374ca

2019-01-15 13:17:38 1914 9

原创 化妆师CSS

css即层叠样式表,网站的美化师【CSS的基本语法】CSS的基本语法通常包含两个部分:一个是选择器,一个声明.选择器{属性:属性值;属性:属性值…}h1{color:yellow;font-size:20px;}引入方式: 行内样式:直接在HTML的元素上使用style属性设置CSS. &lt;h1 style="color:red;font-size:2...

2019-01-11 15:11:58 172

原创 前端基础之HTML

Html:前后端人员的起步点和必经之路,可以自己百度或者w3c上学习,记录一点内容html是骨架,css来美化,js让静态页面动起来作为超文本标记语言主要是用来制作静态页面HTML有标准:* HTML4 * &amp;amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot;&amp;amp;gt;* HTML5:支持视频播放,支持C...

2019-01-11 14:54:19 102

原创 SH高级搜索

前端代码:createTbar : function() { tbarOpr.push('-&gt;'); tbarOpr.push({ xtype : "label", text : "法规或文件名称查询:" }, { xtype:"textfield", width:100, id:'zName', maxLength...

2019-01-10 14:35:29 426

原创 SSH(CURD)

ssh的基础部分控制层调用业务层,这里控制层就不写了业务接口实现类如下: //模糊查询数据并分页 @Override public PageVo findzb(ZBzk pc, PageVo page, User currentUser) { StringBuffer hql = new StringBuffer(); List&lt;Object&gt; params = ...

2019-01-10 13:44:39 300

原创 EXTJS+SSH(JXL实现导入导出功能)

EXTJS+SSH(JXL实现导入导出功能)前端(创建导入导出按钮):js部分:/* * 导入 */ importItem : function() { Ext.QuickTips.init(); Ext.onReady(function() { var form = new Ext.form.FormPanel({ baseCls : 'x...

2019-01-08 10:29:05 505 2

空空如也

空空如也

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

TA关注的人

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