- 博客(98)
- 资源 (29)
- 收藏
- 关注

原创 Java根据ip地址获取归属地
由于最近比较忙,所以一直没有更新博客。今天有一点点时间,来分享一下项目中用到的一个需求功能点。需求描述:获取用户真实ip和ip归属地实现效果:重点:IP地址工具类import cn.hutool.core.util.StrUtil;import cn.hutool.http.HttpUtil;import cn.hutool.json.JSONObject;import cn.hutool.json.JSONUtil;import org.apache.commons.lan..
2021-08-17 17:05:49
5224
9
原创 六戒五勤,共勉之
凡办大事,以识为主,以才为辅;凡成大事,人谋居半,天意居半。身勤:险远之路,身往验之;艰苦之境,身亲尝之。眼勤:遇一人,必详细察看;接一文,必反复审阅。手勤:遗弃之物,随手收拾;易忘之事,随笔记载。口勤:待同僚,则互相规劝;带下属,则再三训导。心勤:精诚所至,金石亦开;苦思所积,鬼神轨通。说人之短乃护己之短,夸己之长乃忌人之长。勿以小恶弃人大美,勿以小怨忘人大恩。庸人皆一惰字致败,才人皆一傲字致败。利可共而不可独,谋可寡而不可众。久利之事勿为,众争之地勿往。2024年7月13日。
2024-07-13 11:52:00
192
原创 Springboot接收参数的21种方式
最近一直在忙着开发项目(ps:其实有些摆烂),好久没有更新博客了,打开csdn一看好多网友留言私信,继上篇博客(我是如何实现HttpGet请求传body参数的!,网友议论纷纷,各抒起见。今天正好抽出时间总结一下Springboot接受参数的21种方式(Post、Get、Delete),一并罗列出来,如果小伙伴们有其他方式也可以留言或私信交流!
2024-06-05 15:12:47
559
原创 Java判断url是否合法
如上博客链接,其中https是scheme,更常用的说法是协议;blog.youkuaiyun.com是authority,也就是主机;/weixin_44146379/是path,也就是路径。如果host不为null,在检查协议是否是应用中能够处理的。如果创建成功,再检查host是否为null;如果创建失败,则认为该URL不合法;先新建一个URI对象;
2022-11-16 10:03:35
3934
原创 最全SQL 语句大全,值得收藏!
是从索引中查找,而后面的selecttop30recidfromA则在数据表中查找,这样由于索引中的顺序有可能和数据表中的不一致,这样就导致查询到的不是本来的欲得到的数据。评价这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作3),例如在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段。为了保证数据的一致性。右外连接(右连接)结果集既包括连接表的匹配连接行,也包括右连接表的所有行。...
2022-07-22 17:43:47
2436
转载 余生一个帆的热鸡汤(6)
别人的哪些行为惊艳到你1、平时很少说话,沉默寡言,内向,收敛,不合群,甚至感觉性格有些古怪。但在一些重要场合,却口若悬河,观点独到,一针见血,语惊四座。2、平时你没看到他坚持哪种习惯,一度觉得他已经自暴自弃,颓废堕落。但总有些时候当你和他生活在一起的时候,却发现他身上有很多闪光点,异于常人,并且有很多是你能力所不能及的,望其项背。3、平时大大咧咧,没啥心眼的感觉,但遇到重要的事情,却总能做到全神贯注,心无旁骛,心细如尘,滴水不漏,思维严谨,结果显著,关键是你还看不出他究竟有了何种办法,何时积累的
2022-01-19 09:42:25
243
1
原创 内网穿透(花生壳)
什么是内网穿透?答:内网穿透原理是映射端口,能让外网的电脑访问到内网的电脑;简单的说就是局域网的服务外网访问不到,通过内网穿透技术来实现外网到内网的端口映射,进行实现外网访问内网服务。(可以实现远程控制,在家可以访问到公司电脑的端口服务)2.如何快速实现内网穿透?答:自己搭建内网穿透需要一定的时间,因此如何想要段时间内快速实现内网穿透,我们可以借助市场上常常见到的一些工具。如:Ngrok、N...
2021-12-25 09:53:11
3018
原创 Websocket集群(使用redis订阅发布实现)
前言项目使用的springcloud框架,并且是集群搭建。这时服务实例就会存在相同的多个服务,这时我们的websocket服务就遇到了一个问题,如下图:需求:系统中有个系统通知的功能,管理员发布通知,全员即可查看到,要求实时性。解决思路:1.使用Rabbitmq使用广播队列2.使用Redis的发布订阅(官方文档)3.评论区见。。。实现效果:管理员发布通知:不同用户同时收到消息:如何实现:...
2021-12-03 09:45:10
1659
2
原创 Centos定时任务,删除日志文件
前言:突然有一天,发现部署nacos的那台服务器访问特别慢,最近没人改动过什么,为什么会慢呢?接下来就是对服务器各种排查,可谓是“一顿操作猛如虎,发现磁盘全用尽”1.查看磁盘使用情况:df -lh 2.查看该目录下所有文件及目录的大小du -sh * 好,问题排查到这里,原因基本可以确定了(nacos日志文件通过日积月累,占用空间较大,从而造成业务故障,所以要定时清理。)解决问题:遇到这个问题,个人想到的解决方案如下:1.关闭nacos日志或降低日志..
2021-10-24 10:00:00
2735
原创 Springboot解决跨域
只需写一个配置类就可解决:import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;/** * @author fan ..
2021-09-18 09:37:34
275
1
原创 Java将秒转为时分秒
需求:将7200秒转为02:00:00代码: /** * 秒转为时分秒 7200 -》 02:00:00 * @param time * @return */ public static String transFom(final int time) { int hh = time / 3600; int mm = (time % 3600) / 60; int ss = (time % 36
2021-09-02 11:04:23
1973
原创 Java List remove时报UnsupportedOperationException
遇到的问题:解决后:源代码: /** * 需求:删除字符串中的a8,并重新组成字符串 * @param args */ public static void main(String[] args) { String str = "a3,a4,a5,a6,a8"; String[] moIds = str.split(StringPool.COMMA); //错误写法: // ..
2021-08-23 21:24:57
458
原创 Redisson实现分布式锁
Redisson是什么?如果你之前是在用 Redis 的话,那使用 Redisson 的话将会事半功倍,Redisson 提供了使用 Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对 Redis 的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格(In-Memory Data Grid)分布式锁必须要满足的四个条件首先,为了确保分
2021-07-05 15:54:04
346
原创 Java开发是站在jar包这个巨人的肩膀上开发
Maven RepositoryJava常用工具包合集Unicode国际化:icu4j扩展了Java标准集合框架,高性能的库:fastutil高性能网络应用框架:NettySpringBoot+Docker集成测试:TestcontainersHTTP 请求模拟测试框架:WireMockexcel操作:poi-ooxmlJava神器动态生成类:byte buddy断言神器:AssertJjava加密扩展:bcprov数据压缩组件:ZstdXSLT转换器:Xalan路由引擎构建器:C
2021-06-17 11:34:18
448
原创 mysql百万数据加索引前后对比
索引类型1.主键索引:PRIMARY KEY,只有一个列作为主键,唯一标识,不可重复;2.唯一索引:UNIQUE,唯一性索引和“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即值必须唯一,同一张表里的多个列都可以设置唯一索引。3.普通索引:NORMAL,一张表可以创建多个普通索引,一个普通索引可以包含多个字段,允许数据重复,允许 NULL 值插入;(是我们经常使用到的索引)4.全文索引:FULLTEXT,在特定的数据库引擎下才支持,作用是快速定位数据。5.多列索引:让搜索关键词更
2021-06-16 17:41:21
645
原创 Springboot集群定时任务+Shedlock
我们常见的几种定时任务框架:1.XXL-JOB:是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用(推荐使用)2.Timer:是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行(用的较少)3.Spring Task:Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且
2021-05-28 11:52:49
692
原创 mysql查询24小时分组数据
需求:echarts图要展示24小时数据,但是数据库中并不是有24个小时数据,所以这时为空的就要补0。sql语句:SELECT a.hour hour, ifnull(b.count, 0) count FROM (SELECT 0 hour UNION ALL SELECT 1 hour UNION ALL SELECT 2 hour UNION ALL SELECT 3 hour UNION ALL SELECT 4 hour UNION ALL SELECT 5 hour UNION ALL S
2021-05-17 18:54:57
2046
1
原创 centos7安装宝塔面板报错
我的服务器是云服务器版本是Centos 7 x86_64错误语句:ERROR: The BT-Panel service startup failed.解决方案:直接输入下面两行命令,然后重新安装即可pip uninstall publicbt restart重新安装:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh in
2021-05-13 19:31:53
4164
2
原创 Springboot动态创建mysql表
最近遇到一个需求,今天正好有时间分享一下。需求描述:用户通过web页面动态创建数据库表,包含表名称,表字段值,表结构。请求参数样例:请求参数:{ "tableName": "user", "list": [ { "fieldName": "name", "fieldType": "varchar", "fieldExtent": 100 }, {
2021-03-26 13:21:19
2149
6
原创 AES128加解密
什么是AES?高级加密标准(英语:Advanced Encryption Standard,缩写:AES)是一种区块加密标准。AES可以使用128、192和256位密钥,从安全性来看,AES256安全性最高。从性能来看,AES128性能最高。import lombok.extern.slf4j.Slf4j;import org.apache.commons.codec.binary.Hex;import org.bouncycastle.jce.provider.BouncyCastleProvi
2021-03-03 18:09:24
8176
2
原创 sql查询某个字段为空时赋新值
sql对查询为null的值赋默认值不同数据库使用的参数有所不同,下面总结一下几种常用数据库赋默认值的函数。(以下均为sql语句)场景:如果 price 字段为Null则赋默认值0mysqlselect ifnull(price,0) from 表名;oracleselect nvl(price,0) from 表名;sqlserverselect isnull(price,0) from 表名;pgsqlselect COALESCE(price, 0) from 表名;..
2021-01-19 18:47:24
10913
原创 根据经纬度查询两点距离(sql)
前言:app可以获取当前所在位置的经纬度,根据当前经纬度,查询当前位置距离其他地点之间的距离;方案一:高德地图(百度地图,腾讯地图等)提供api。根据两点经纬度,计算出实际距离;方案二:三角函数的输入和输出都采用弧度值其中longitude是经度,latitude是纬度;a=latitude1 - latitude2为两点纬度之差 b=longitude1-longitude2 为两点经度之差;6378.137(KM) 为地球半径方案三:使用sql在代码中计算两点距离由于地球是球体,根据:
2021-01-15 22:45:02
2974
原创 使用redis分布式锁实现“茅台”秒杀
什么是分布式锁?分布式锁就是:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。举个大白话一样的例子:假设共享的资源是一辆共享汽车,这辆车在一个时间只能有一个人去驾驶,分布式系统就好比是要驾驶车的人,分布式锁就是保证这个时间点只能一个人驾驶,并且只有这一把钥匙。然而,有好多人要租车,但是要按顺序来排队,第一个人拿着钥匙去用车,下一个人要等着,当第一个人用完车把车还回来,下一个人才能继续驾驶,然后就是以此类推。分布式锁的特点为了保证分布式锁的可用性,必须要满足下面的四点条件!1.互斥性
2021-01-09 18:23:59
247
原创 云服务器搭建PostgreSQL12(已验证)
本文操作可适用环境系统:CentOS 7.x软件:PostgreSQL 9.x-12.x本文使用环境:系统:7.6 Release软件:12.xPostgreSQL安装步骤1、导入yum源sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm2、安装PostgreSQL服务(12)sudo yum i
2020-12-03 18:29:36
781
原创 java根据日期获取当前是星期几
/** * 根据日期获取当前是星期几 */ public static void main(String[] args) throws ParseException { String dates = "2020-12-1"; Calendar cal = Calendar.getInstance(); SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); ...
2020-12-01 21:02:51
2679
1
原创 Excel动态导入数据到数据库
前言(PM)我想要的效果:我知道数据库有什么字段,也知道表名,我就是想通过excel表格动态插入数据库,就这么豪横!菜鸟分析(攻城狮本人)1.表名:数据库真实存在的表(可变)2.字段名:数据库字段(可变,有时会多字段,有时会只插入一个字段)3.数据:当然随着字段更改,数据也对应分析:我们首先要清楚这些数据插入到哪张表,插入到哪些字段,所以我们要先解析出第一行,并且拿到is_execute这一列所有的值判断是否执行插入,然后再解析出第三行所要插入的数据;(第二行是描述暂忽略)所用技术点:spr
2020-12-01 20:51:48
1034
1
原创 我是如何实现HttpGet请求传body参数的!
前言最近调用公司项目一个接口时,发现该接口是一个Get请求,入参在Body 中(json格式)。场景如下:A服务需发送http请求调用B服务的接口(该接口为Get方式,入参是一个json字符串在body中传递)当我看到这个接口的时候,感觉好奇怪(MMP,干嘛不用POST请求。Get就get,请求还放Body中,心里有些不爽)尽管心里不爽,但是也只能默默接受,撸起袖子 “干” 就完了!实现过程:首先官方不推荐这样做,但是http(基于tcp的超文本传输协议)并没有规定,Get 请求不能加body一.
2020-11-19 14:19:49
32425
11
原创 Java中循环删除list中元素的方法总结
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后在今天使用的时候发现报错了,然后去科普了一下,发现这是一个误区。下面我们来一起看一下。Java中循环遍历list有三种方式:for循环,增强for循环(也就是常说的foreach循环),iterator遍历。1.for循环遍历listfor(int i=0;i<list.size();i++){ if(list.get(i).equals("del")){ list.remov
2020-11-12 14:29:08
1437
1
原创 Springboot使用@Validated(优雅的代码)
背景回忆一下我们没用使用过@Validated时:上图是controller层,新增用户信息接口,为了校验参数合法性,真是费了好多 if else 判断,代码可读性较差,开发效率还很低,想想都很头疼啊!!!用什么好的解决办法吗?写这么多 if else 我也很烦,很累,很不开心!答案是有的,俗话说办法总比困难多,接下来我们就走进 Validation 的世界 。。。使用注解 @Validated 后我们接口的样子:有没有感觉清爽很多,说了这么多,大家也对比了,到底这个注解是干嘛的呢,如何
2020-10-28 20:17:30
2635
4
原创 1024程序员节快乐!
女朋友:1024?什么1024?你生日?我:1024程序员节(码农节)是广大程序员的共同节日!女朋友:为什么定为10月24号为程序员节日呢?我:1024也是程序员自发认定的节日,表明10月24日,是程序员节,这是由于信息量的单位1GB=1024MB,1MB=1024KB,1kb=1024Byte,程序员们就把1024作为了一种表示自己身份的符号1024。女朋友:是不是1024你们程序员都不用加班呀?我:。。。。。(无语了,这个不好说,因为我们程序员工作都是7*24的!一出bug第一时间就要修复;以
2020-10-24 12:34:37
686
1
原创 Java生成唯一id的几种方式(已验证)
1.数据库自增序列方式数据库方式比较简单,比如oracle可以用序列生成id,Mysql中的AUTO_INCREMENT等,这样可以生成唯一的ID,性能和稳定性依赖于数据库!如mysql主键递增:2.系统时间戳这种方式每秒最多一千个,如果是单体web系统集群部署方式,可以为每台机器加个标识!(并发量较大不建议使用) /** * 根据时间戳生成唯一id */ @Test public void test(){ SimpleDateFormat
2020-10-22 16:34:09
39065
3
原创 Springboot集成Zxing生成二维码
前言:需求描述:用户知道链接地址,但是不想点击链接,想通过扫码访问到指定网站;这时用户就只给我一个url地址,让我给他生成一个二维码!对Zxing的了解: ZXing,一个支持在图像中解码和生成条形码(如二维码、PDF 417、EAN、UPC、Aztec、Data Matrix、Codabar)的库。ZXing(“zebra crossing”)是一个开源的、多格式的、用Java实现的一维/二维条码图像处理库,具有到其他语言的端口。先看一下实现效果:代码实现过程:1.引入谷歌的zxing依赖
2020-10-21 16:00:32
743
1
原创 Java时间戳与Date互转
1.时间戳转为日期格式字符串 @Test public void test1(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 获取当前系统时间戳 //long l = System.currentTimeMillis(); //如果你数据库存储的时间戳类型为string,就需要将string字符串转为long类型 Str
2020-10-11 11:08:40
32612
2
rabbitmq-server-3.6.8-1.el7.noarch.rpm
2021-03-04
startup.sh
2020-12-04
XShell+Xftp工具包.rar
2020-09-11
new Navicat Keys.rar
2020-08-29
jdk-8u11-linux-64.rpm.rar
2020-08-12
jquery.min.js
2020-04-03
Node.js.zip
2020-03-19
upload.zip
2019-11-14
mysql-community-all-5.7.27-1.el6.x86_64
2019-08-05
Win10、Win11系统dll文件修复工具(亲测可用,完美修复)
2024-07-25
智能修图软件的设计与实现
2024-06-18
一些IT考核的材料,如果当领导或者老板的可以多关注
2022-09-15
SpringBoot + Layui 的智能停车场项目
2022-06-29
windows10,jdk8安装包
2022-01-19
JavaWeb如何调用exe并传参?
2022-10-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人