自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 mysql:一些好用的函数,开发中或许用的到呢?

最近在与同事一起讨论一些业务,实现业务,发现原来MySql有很多函数自己并没有掌握,因此,干脆总结一番,当一个查询手册,以后用到可以直接进行查询。废话不多说,开干!

2024-04-22 17:30:45 830

原创 SpringBoot+ThreadLocal+AbstractRoutingDataSource实现动态切换数据源

上述提到了ThreadLocal和AbstractRoutingDataSource,我们来对其进行简单介绍下。:想必大家必不会陌生,全称:thread local variable。主要是为解决多线程时由于并发而产生数据不一致问题。ThreadLocal为每个线程提供变量副本,确保每个线程在某一时间访问到的不是同一个对象,这样做到了隔离性,增加了内存,但大大减少了线程同步时的性能消耗,减少了线程并发控制的复杂程度。ThreadLocal作用:在一个线程中共享,不同线程间隔离。

2024-04-18 17:36:40 602 1

原创 SpringBoot + validator优雅参数校验,消除if-else

Hibernate Validate是Bean Validation实现的,内置了JSR303/JSR380中所有的constraint的实现,同时也额外提供了很多自定义的constraint。Bean Validation为JavaBean的验证提供了很多相关的元数据模型和API。/****/@Data@NotNull(message = "userId不能为空",groups = Update.class)@NotBlank(message = "用户名不能为空")

2024-04-16 15:14:14 619 1

原创 SpringBoot+Druid你还只是用做数据库连接池吗?要不咱这么用用?

自定义一个回调类继承DruidPasswordCallback,并重写setProperties这个方法,该方法就是解析密码,设置密码的方法。/****/@Slf4j//构造方法,传入resourceLoader,用于读取RSA公私钥文件内容@Overridelog.error("Druid密码回调报错:" + e.getMessage());我是自定义了RSA的加解密,所以将公私钥放在了rsa_keys.txt文件,基于hutool定义了一个RSA加解密的方法。

2024-04-10 10:34:22 565 1

原创 idea Ultimate自带Database客户端,丝滑使用,YYDS

Hi,大家好,我是抢老婆酸奶的小肥仔。说到数据库连接工具,Navicat一定是没法绕过的。它小巧方便,操作简洁,满足我们日常对数据库的操作,然而贫穷限制了我的使用,即使破解了,在公司使用时,也会因为一封邮件不得不卸载。既然没有Navicat,那就使用其他的工具,比如:DBerver,HeidiSQL等工具,是的,这些工具不说不好,就比如说DBerver免费的,也能满足我们需求,但是个人使用是真不习惯,特别是之前从Navicat导出数据,使用DBerver导入时居然导入不进去,因此弃了。

2024-04-08 11:40:38 765

原创 SpringBoot通过ip获取归属地,你应该知道的几种方式。

Hi,大家好,我是抢老婆酸奶的小肥仔。在日常我们逛网站的时候会发现我们登录后会出现归属地信息,例如:我在广州登录会显示广东广州,有些更加精确的会显示到区县。那么我们来看看有哪些方式来获取归属地信息?今天我们来聊一聊。

2024-04-03 13:57:52 888 1

原创 SpringBoot通过手机号获取归属地,你应该知道的几种方式。

Hi,大家好,我是抢老婆酸奶的小肥仔。最近在做公司需求时,甲方一会提出根据IP获取所在地,一会又提出根据手机号获取手机号归属地。真的是:需求时时变,累死程序猿。甲方才是爸爸。之前已经实现过根据IP获取所在地的几种方式,大家可以参考我之前写的文章下:《SpringBoot通过ip获取归属地的几种方式》https://juejin.cn/post/7280745727176245307。那么今天我们来看看根据手机号有哪些方式可以获取归属地呢?废话不多说,开撸!libphonenumber:是谷歌提供的一款用于解

2024-04-02 09:21:48 999 1

原创 拿来即用:SpringBoot+Minio+vue-uploader实现分片上传

Minio:一种分布式文件存储,具有高性能,轻量级,速度快,容错率高等特点,兼容亚马逊S3云存储服务接口,并可以作为一个独立的存储后端。minio提供了纠删码策略,即将数据进行切分,同时计算校验块,采用Reed-Solomon code将对象拆分成N/2数据和N/2奇偶校验块,假如有8块盘,数据则被分成4个数据块,4个奇偶校验块。即使这个对象丢了4块盘,数据依然可以进行恢复,因此即使我们一不小心删除了一些盘,也不用担心数据会丢失。

2024-03-27 17:08:05 671 1

原创 SpringBoot+EasyExcel+Mybatis-plus实现通用Excel数据批量导入

基于java实现的快捷、简洁、解决大文件内存溢出(即OOM)不用考虑性能、内存等因素情况下,快速完成Excel的读、写等功能。从简介中,知道使用EasyExcel操作Excel时,我们只需要关注业务本身即可。

2024-03-26 16:44:01 749 1

原创 Stream,让集合操作更丝滑

Stream:流,可以对集合进行操作,比如:顾虑,合并等,是一种高效且易于使用处理数据的方法。在Stream操作中分为三个步骤:1、创建Stream流:比如:Stream.of()等2、中间操作:即处理Stream流,比如:filter,map等3、终止操作:即结束Stream流,返回操作结果,比如:collect(Collectors.toList())在操作Stream时,Stream自己不会存储元素,不会改变原来对象,会延迟执行,只会在需要结果时才执行。

2023-05-04 14:14:28 239

原创 java -Function、Predicate、Supplier、Consumer及自定义实现

也就是jdk提供声明该接口是函数式编程接口。我们来实现一个自定义函数式编程接口,不需要返回值也不需要传入任何参数。

2023-04-27 09:30:56 1833 1

原创 SpringBoot-读取配置文件

在ideal中可以直接设置自定义配置文件目录。如图:编辑启动项,在【Environment variables】中添加【spring.config.location=classpath:/】或【】或【spring.config.name=java】,在【resources】下创建目录并添加配置文件。:表示自己重新定义配置文件的位置,项目启动时就按照定义的位置去查找配置文件,这种定义方式会覆盖掉默认的四个位置:表示在四个位置的基础上,再添加几个位置,新添加的位置的优先级大于原本的位置.

2023-04-26 09:38:38 1324

原创 SpringBoot之@ConditionalOnProperty注解

在平时业务中,我们需要在配置文件中配置某个属性来决定是否需要将某些类进行注入,让Spring进行管理,而@ConditionalOnProperty能够实现该功能。@ConditionalOnProperty:根据属性值来控制类或某个方法是否需要加载。它既可以放在类上也可以放在方法上。

2023-04-24 15:29:03 3711

原创 问题:oss上传图片,new OSSClient报错

小伙伴们,有没有遇到阿里oss上传图片,报com.aliyun.oss.ClientException: Unknown 的。查了下帮助文档看不懂:网络打满是什么意思。

2018-09-15 11:45:55 6217 7

原创 【java】Optional,沉浸式开发

在没有optional之前,我们很多时候都是使用if-else-if来进行条件判断,然后根据条件来获取对应数据。例如:获取赵一所在的职位名称。使用optional就会优雅很多,也会尽量的避免NPE。上述代码对比中,我们可以清晰感觉到使用optional代码比较优雅,也没有大量代码判空,即使数据不存在也没报NPE。Optional是JDK1.8后引入的一个新特性,通常被认为是用于缓解java中NPE问题。Optional作为容器,可以保存类型T的值,也可以直接保存null。

2023-05-08 17:30:36 98

原创 java transient关键字

1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。

2023-04-25 10:56:54 93 1

空空如也

空空如也

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

TA关注的人

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