Spring Boot之ApplicationContextAware接口的使用场景实例

ApplicationContextAwareSpring提供的一个扩展接口,在Spring项目加载完所有的Bean实例后会调用该接口的实现。自定义类实现ApplicationContextAwarepackage com.unfbx.eventTest.config;import com.unfbx.eventTest.annotation.TestLog;import org.springfr

- 阅读全文 -

@Valid和@Validated的编程式调用,手动触发参数校验

简介隔离在家工作,最近遇到一个挺好玩的需求哈哈哈。在参数校验前需要做一段逻辑上的处理。比如:同一个接口的参数校验,一个实体类有10个属性满足条件A就校验其中的5个属性,满足条件B就校验另外5个属性。常用的处理逻辑一般我们在做Spring Boot项目时候的参数校验都是直接通过在接口入口处增加@Valid,然后Spring在序列化参数的时候就回自动帮我们进行校验。实体类增加校验注解这里举例:@Not

- 阅读全文 -

Spring Boot配置文件敏感信息加密的开源方案实现

简介最近隔离在家,做项目中发现项目中的配置文件敏感信息都是明文存储的的,很不安全。例如:数据库的密码,redis的密码,oss存储的相关key等等。然后自己也上网百度了下相关的资料。找到了一个开源的配置文件加密实现:jasypt。jasypt开源地址:asypt-spring-boot 官网:http://www.jasypt.org jasypt的使用引入依赖gradle:compile gro

- 阅读全文 -

Spring Boot配合Postgresql实现外卖平台常见的距离你xxx米功能

简介最近在做一个业务功能,需求涉及到了通过终端的定位获取距离终端最近的实体店铺的需求。因为之前没有涉及到地理位置坐标计算距离的知识,只知道redis可以计算两个坐标点(经纬度)之间的距离。但是不满足目前的需求,因为除了计算距离外还要进行筛选、排序、分页。所以就不考虑在redis实现。更不可能全表查询内存排序。所以上网搜索资料,找到了pgsql的插件postgis,是数据库层面支持经纬度距离计算的插

- 阅读全文 -

Windows版MySQL安装初始化

Windows版MySQL数据库安装新电脑要装一个mysql,网上找的教程有点乱,写一个备用。下载mysql官网下载地址:https://downloads.mysql.com/archives/community/可以选择版本最新版,历史版本都有。我下载是64位5.7.34。下面两个选择上面的那个zip压缩包。安装1、直接解压缩刚刚的压缩包2、根目录新建ini文件[mysql]# 设置mysql

- 阅读全文 -

算法数据结构----差分数组

什么是差分数组?差分数组也是一个数组,只不过它的产生是由原数组进化而来。首先我们定义一个原数组array长度为8:INDEX01234567原数组1253101005466然后定义一个差分数组tempArray长度也为8,差分数组的每一项取值为(第一项默认为原数组第一项):tempArray[i] = array[i] - array[i-1] ;(i>0)INDEX01234567原数组1

- 阅读全文 -

Java8中的Optional

OptionalOptional构造方法私有,不能通过new创建对象。Optional创建对象的集中方法。方法名描述of(T value)创建一个对象,如果为空,抛出NullPointException。ofNullable(T value)创建一个对象,可以为空。empty()创建一个空的对象empty()Optional<Object> empty = Optional.empty

- 阅读全文 -

02-Jvm垃圾回收

如何判断对象可以回收?引用计数法两个对象互相引用,会导致两个对象都没法被回收。可达性分析Java 虚拟机中的垃圾回收器采用可达性分析来探索所有存活的对象扫描堆中的对象,看是否能够沿着 GC Root对象 为起点的引用链找到该对象,找不到,表示可以 回收哪些对象可以作为GC root?虚拟机栈(栈帧中的本地变量表)中引用的对象。方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNI(即

- 阅读全文 -

2022最新Jetbrains系列-IDEA等软件激活码

插件激活方式测试的版本是2021.1.2其他版本请自测。下载JB系列软件,直接选择试用30天。打开菜单:File->Settings->Plugins->上方齿轮设置⚙->Manage Plugin Resp->增加插件源https://plugins.zhile.io然后保存后在插件市场MarketPlace搜索IDE Eval Reset,下载安装。当软件试用时间

- 阅读全文 -

01-Jvm内存模型

jvm的内存模型包含什么?程序计数器(寄存器)作用:记住下一条jvm执行的执行地址。程序执行过程中cpu切换任务执行,再次返回是必须知道程序执行到哪一步了。程序计数器是线程私有的不存在内存移除虚拟机栈栈内存模型后进先出。虚拟机栈包含了栈帧。每一个线程只能有一个活动栈帧,对应当前正在执行的方法。每一次方法调用都会存在一个栈帧。栈内存溢出:栈帧过多(方法调用嵌套太多,不能正常返回。无限递归)栈帧过大(

- 阅读全文 -