- 博客(69)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注

原创 springcloud 微服务搭建 服务发现+断路器+服务配置(eureka+hystrix+config)
1、结构概述本文包含4个springboot服务,A.服务注册中心,B.被发现和被调用服务,C.接口服务 ,D. client服务;C服务调用B 服务,并且C 服务对外提供接口供D 服务使用注意:示例只提供基本的逻辑,不做业务处理。各个服务结构图如下:服务A:pom文件:<properties> <java.version&g...
2019-04-26 14:19:03
58130
原创 fastjson 字符串转对象 boolean类型字段转换失败
转换的实体类使用了lombook的@Data注解,会自动生成get和set方法,如果是boolean类型,lombook自动生成的boolean的set方法是 setBase64Encryption,fastjson 找的是 setIsBase64Encryption 没有找到,所以默认是false;有一个json字符串,需要将这个字符串转换为对象,字符串中有个字段是布尔类型,对应的value是true,使用阿里的fastjson 字符串转换对象后,values转成了false。
2024-12-17 17:39:36
463
原创 mysql left join group_concat 主表丢失数据
现在想要查询出来a表的所有数据和b的id,相同的a表的id,b的id 使用GROUP_CONCAT拼接。a表有两条数据,a表第一条数据在b表中有一条子数据,a表第二条数据在b表中没有子数据。预期是要把主表的两条数据都查询出来,但是只查询出来一条结果,并且结果sids不对。1、使用子查询,先把子表分组并获取sids,然后再左连接。有一个主表 a,一个子表 b。
2024-10-31 17:06:47
464
原创 maven手动导入jar包到本地仓库
例如我要把从网上下载好的一个jar包放入自己本地的maven仓库。-Dpackaging :打包类型名称,例如JAR;-Dfile:jar包在硬盘上的位置。执行命令打包到本地maven仓库。cmd进入存放jar包的路径。
2023-03-16 13:38:06
589
原创 java杂谈
java杂谈,旨在将晦涩难懂的java知识,以通俗易懂的语言描述出来。外有,马丁路德金面对种族歧视演讲《I have a dream》。而龙池小生,也要做点什么,于是《java杂谈》应运而生。中有,毛委员意气风发题《沁园春·雪》;今有,鲁迅先生与五四洪流著《呐喊》;古有,屈原放逐乃赋《离骚》;
2022-11-04 17:22:19
192
原创 记一次jar包冲突解决过程
问题描述:在做一个功能,需要用到 org.apache.curator 下的 curator-framework jar包,程序运行过程中报错,对比其他项目、查阅资料发现是 curator-framework包版本太高,没有找到对应的方法,排除高版本的包后,启动项目报错,根据启动日志发现是 com.google.guva.guava的jar包冲突,重新引入guava包问题解决。java.lang.NoSuchMethodError: org.apache.curator.framework.api.Crea
2022-06-17 16:25:36
3283
原创 linux系统jar包启动、关闭、重启sh脚本
#!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改APP_NAME=/usr/local/park/demo.jar#日志文件路径及名称(目录按照各自配置)LOG_FILE=/usr/local/park/logs/demo.log #使用说明,用来提示输入参数usage() { echo "Usage: sh demo.sh [start|stop|restart|status]" exit 1} #检查程序是否在运行is_exist() { .
2022-01-06 14:38:09
2548
1
原创 idea快捷键
列操作:进入列操作快捷键:alt+鼠标左键跳到下一个单词的位置:ctrl+⬅,CTRL+→选中单词:CTRL+shift+⬅,CTRL+shift+→
2021-12-07 20:01:55
892
原创 开发中常见的空指针异常场景及处理方案
前言:俗话说,不到长城非好汉,那么没遇到空指针 java.lang.NullPointerException 的程序员不是真正的程序员。1、实体对象为空,然后操作对象会出行空指针异常1)调用方法获取到的对象为空DemoEntity entity = getEntity();// entity为nullBoolean bool = entity.getBool();//会有空指针异常//避免空指针方法Boolean boo = null != entity ? entity.getB
2021-09-27 09:33:03
1190
原创 数据库sql语句及命令
1、sql 判断一个表是否存在select count(*) from information_schema.tables where table_schema='mydatabase' and table_name ='score';2、查询数据库的表或者模糊查询数据库的表select table_name from information_schema.tables where table_schema='mydatabase' and table_name like '%20191216.
2021-08-26 16:16:01
1071
原创 RabbitMQ消息重复消费场景及解决方案
前言:上一篇文章介绍了springboot如何整合RabbitMQ:https://blog.youkuaiyun.com/chenping1993/article/details/114301341这里介绍一下RabbitMQ重复消费的场景,以及如何解决消息重复消费的问题。目录消息重复消费:MQ的一条消息被消费者消费了多次:重复消费场景重现测试:如何解决消息重复消费的问题(单消费者场景):编码:解决消息重复消费测试:消息重复消费:什么是消息重复消费?首先我们来看..
2021-03-09 15:21:11
33885
21
原创 springboot集成RabbitMQ
模拟服务端和客户端(消息从服务端发送,客户端监听并获取消息)环境准备:RabbitMQ是使用erlang语言开发的,所以要确认电脑有erlang语言环境,erlang语言安装配置及RabbitMQ安装配置参考博文erlang:https://blog.youkuaiyun.com/gengkunpeng/article/details/104950857mq:https://blog.youkuaiyun.com/qq_47588845/article/details/1
2021-03-03 10:37:45
14452
9
原创 BeanUtils拷贝 忽略空值
应用场景:一个实体创建了多个对象,每个对象的某个或者某几个字段有值,通过bean拷贝,将这几个对象合并成为一个需要的各字段都有值的对象;例如:对象student有属性 id、name、age、city等属性;a对象id有值,b对象name有值,c对象age有值,d对象city有值;要合并到a中id、name、age、city都有值若是 通过 BeanUtils.copyProperties(source,target) 此种方式,会将source所有的值包括null值也拷贝到target对象中,不符
2021-02-07 09:47:32
27148
6
原创 大数据量 分类统计每个类别的排名前三的数据
需求:统计每个类别某项数据排名前几的数据方案:1、sql统计2、sql查询出所有的数据,代码 group 分组取出每个类别的前3个数据3、sql查询每个类别前3数据,union连接起来测试:表结构:添加15万条测试数据:@Before public void getList() { long start = System.currentTimeMillis(); Ranking user; ...
2020-12-29 14:34:15
39251
原创 springboot整合shiro实现用户登陆认证、用户授权等
简介:Apache Shiro 是Java的一个安全框架,可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。摘自w3cschool:https://www.w3cschool.cn/shiro/co4m1if2.html项目简
2020-12-18 17:27:32
42805
7
原创 关于poi的NUMERIC读取excel单元格数值类型数字的问题
使用poi读取excel文件单元格的数据,若是单元格数据是数值格式,poi获取单元格的数值值:row.getCell(j).getNumericCellValue()返回的的结果是double类型若是单元格是int类型,那获取出来的数值也还是double类型,例如:单元格是5, 获取出来的值是5.0但是我们需要的是单元格存储的类型,而不是double类型,这时就导致了一种问题,就是传递错误,给出的数据和接收的数据不一致。解决方法:直接的方法是,以double类型来接收获取的值,
2020-12-12 11:09:48
55741
5
原创 你要惊艳所有人,然后悄悄学java -- mybatis 自动生成
需求:开发过程中,尤其在项目开发的初期阶段,需要建立一些表实体、mybatis xml文件、这个时候手敲代码就duck不必了。下面教给大家一种自动给生成 实体、mapper文件、mybatis xml文件的方法。示例为已经建立好的springboot项目首先:添加自动生成的jar包 <dependency> <groupId>org.mybatis.generator</groupId>
2020-12-03 18:17:21
43884
原创 python 证件照换背景色(蓝底->白底,蓝底->红底)
接上一个博客:python 等比例裁剪图片 https://blog.youkuaiyun.com/chenping1993/article/details/110088858有时候我们的证件照需要换背景色,如果拿去花钱让人换那就大可不必了,以下提供一个换背景色的方法(省时省力省钱????)。#!/usr/bin/env python # -*- coding:utf-8 -*-# 作者:chenping# 问题:SyntaxError: (unicode error) 'unicodeescape'
2020-11-25 17:00:55
4696
6
原创 python 等比例裁剪图片
使用场景:工作中,比如办理社保卡,或者办理员工卡等,我们会提供证件照片,往往我们提供的证件照片都不符合要求,这个时候就需要对照片进行裁剪,此时我们会去印刷打印店花个几元钱让店主帮忙裁剪,这个时候我们也可以发挥作为程序猿的优势,使用程序裁剪图片例如我们操作一个图片,原始像素为 531*300代码示例from PIL import Imagedef changeImage(file_in, width, height, file_out): image = Image.open(file_
2020-11-24 17:45:22
2777
原创 springboot 2.3.0及以上版本 解决@Validated @Valid 不起作用的问题
场景:Controller类接口,需要提前校验传递的参数的正确性,通常我们会加上注解 @Validated @Valid来校验参数,比如校验非空、数据格式等,例如:校验的实体:@Datapublic class TestValidVO { private String id; @NotBlank(message = "姓名不能为空") private String name; @Size(min = 7,max = 11,message = "电话号码格
2020-11-12 15:06:06
73587
25
原创 druid访问监控首页index.html页面404 whitelabel error page This application has no explicit mapping for /error
问题:配置druid 访问地址 http://localhost:8887/druid/index.html报错:This application has no explicit mapping for /error, so you are seeing this as a fallbackdruid版本: <dependency> <groupId>com.alibaba</groupId>
2020-11-09 16:15:27
59256
1
原创 mybatis xml 批量插入 in查询 模糊like查询 字符串转时间区间查询等操作
in 查询;模糊 like查询;字符串转时间 区间查询;批量插入 foreach
2020-11-04 15:17:35
53701
2
原创 定时任务 @Scheduled cron、fixedRate、fixedDelay、fixedDelayString、fixedRateString
cron 可以设置每隔周期时间执行,也可以指定在某个时间执行; 每隔指定时间执行任务,首先判断上次任务是否已经执行结束,若是已经执行结束,则执行此次任务,若是没有执行完成,则在下一次指定时间再次重复以上步骤。例如:每隔3秒执行定时任务,0秒开始第一次执行,在第3秒的时候判断上次任务是否已经执行结束,若是已经结束,则执行此次任务,若是没有结束则在第6秒的时候再次检查任务是否执行完成...........fixeddelay 上一次任务结束后等待指定时间执行下次任务;例如:每隔3秒执行定时任务,0秒...
2020-09-24 17:08:29
48842
3
原创 Java8 排序、分组、统计、过滤
Java 8 Stream,可以以一种声明的方式处理数据,写出高效率、干净、简洁的代码,可以在节点上进行处理, 比如筛选, 排序,聚合等。数据准备:测试实体创建:@Datapublic class City { private String cityName;//城市名称 private Integer population;//人口 private Integer rank;//排名 private String province;//所属省份名称
2020-09-14 15:19:10
55622
1
原创 springboot 定时任务 实现SchedulingConfigurer接口,修改定时任务不重启项目
业务场景描述:定时任务的任务名称,cron(定时任务表达式),定时任务开关,存储在数据库表中。在不重启项目的情况下,修改定时任务表达式,可以实时获取新的定时任务执行时间规则;修改定时任务执行状态,可以随时开关定时任务。使用技术:基于接口 SchedulingConfigurer1、建表 管理定时任务DROP TABLE IF EXISTS `scheduled`;CREATE TABLE `scheduled` ( `name` varchar(20) DEFAULT NULL,.
2020-08-28 11:19:30
49520
20
原创 springboot 在application.yml中定义数组的两种方式
1、通过 ‘ -‘ 来区别数组的多个值yml结构配置: provinceConf: smpIp: - 192.168.2.164 - 192.168.2.166配置类取数组值: import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframewor
2020-08-07 14:41:29
73296
3
原创 扫二维码访问网站、网页
生活中时常会有这种情形,扫码登陆,扫码注册,扫码访问某网页等。其实其中的原理就是,这个二维码中包含了你要访问的地址的url,扫码可以解析其中的url从而进行访问。下面以springboot项目来实现,通过扫二维码访问我的博客首页。引入谷歌二维码生成器jar包: <dependency> <groupId>com.google.zxing</groupId> <artifactId>ja
2020-05-18 21:58:00
58572
3
原创 mybatis 插入大量数据效率对比,foreach插入、SqlSession批量插入、sql插入
新增xml执行效率测试:xml执行时间比sql稍慢一些,50000条数据插入时间约为2000毫秒左右,平均时间是sql的2倍左右。sql插入的效率最高,sqlsession次之,mybatis框架foreach插入效率最低。2 使用mybatis-plus框架的insert方法,for循环,每次执行一次插入。使用mybatis插入数据执行效率对比,对比三种方式(测试数据库为MySQL),1 使用 SqlSessionFactory,每一批数据执行一次提交(3 使用ibatis,纯sql插入。
2020-05-14 11:26:28
44102
14
原创 构建博客网站检索系统(Springboot + ElasticSearch+Tkmybatis+vue)
项目简介:基于框架 Springboot + ElasticSearch+Tkmybatis 实现博客网站检索系统效果展示:es查询时间39mysql查询时间247:分词:springboot描述--分成springboot、描述(所有包含'spring'或者'描述'的数据都被查询出来)项目资源依赖:ElasticSearch:elasticse...
2020-04-30 14:55:05
31852
3
原创 hashcode源码解析
hashcode源码:源码解析:hash 默认为 0,value为hashcode对象的char[]类型由第1456行可以得出,hashcode的计算公式为:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] 其中s[0]、s[1]为对应的ASCII码。计算公式对应第1470-1472行的for循环。参照源码,我们可以自己编写代码实现h...
2020-04-22 21:55:25
768
原创 定时随机访问博客
目录需求描述:逻辑:实现:效果展示:需求描述:有几个网站url,定时、随机访问这些url。逻辑:定时任务--》组装需要访问的url集合--》实现随机获取其中的一个url--》http访问此url--》随机睡眠几秒实现:import lombok.extern.slf4j.Slf4j;import org.springframework.schedu...
2020-04-21 22:19:33
248
原创 切面 Aspect ProceedingJoinPoint 获取当前类、方法等属性API
切面配置类,获取切面上的各种属性:示例@Aspect@Componentpublic class ProceedingJoinPointDemo { @Pointcut("execution(public * com.demo.controller.*.*.*(..))") public void allControllerMethod() { } ...
2020-04-16 11:08:24
66668
原创 tk.mybatis 插入数据后获取id
适用于id为自增主键插入数据,获取id实现: YjIssueFile yjIssueFile = new YjIssueFile(); yjIssueFile.setFileName(saveFileName); yjIssueFile.setFinaPath(saveFilePath);...
2020-04-07 15:43:59
3189
原创 反射
1、反射获取类对象的三种方式2、反射获取类字段3、反射获取类方法、注解示例:public class ReflectClass { private String a = "11"; private int w = 11; private String getA(int b) { return b+"3"; } @Requ...
2020-04-04 22:52:32
129
原创 File操作
判断文件夹是否存在,不存在则创建:String file = "D:/a";File dir = new File(saveFilePath); if (!dir.isDirectory()) { dir.mkdir(); }判断文件是否存在,不存在则创建:File file = new File("G:\\Jeff...
2020-04-03 16:54:43
161
原创 tk.mybatis 分表 实现数据库增删改查
需求描述:根据外部动态pid数据,动态获取各个pid所属的表,如 pid 为1 则查询的表为 table_1。具体实现:1、建立两个测试表 test_1、test_2DROP TABLE IF EXISTS `test_1`;CREATE TABLE `test_1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name...
2020-03-02 19:14:09
33266
java mongodb 查询问题
2017-01-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人