- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 SpringBoot读取Nacos配置文件,实现动态刷新
使用@ConfigurationProperties。使用 @RefreshScope + @Value。字段名称需要和配置中的名称一致。
2024-10-31 14:15:35
495
1
原创 ReentrantLock和AQS(AbstractQueuedSynchronizer)的关系,lock()方法与unlock()的实现过程
ReentranLock内部分为公平锁(FairSync)和非公平锁(NonfairSync), 可在构造函数中制定使用公平锁还是非公平锁,默认使用的是非公平锁。方法的作用是尝试获取锁,如果获取锁失败,就会将当前线程加入等待队列,并在等待队列中自旋,直到获取到锁或者被中断。公平锁和非公平锁的在ReentrantLock实现上的区别: 区别一:非公平锁竞争锁资源会先去竞争锁,而公平锁只会在锁状态为0时才会竞争锁;区别二:公平锁查看队列里面是否有节点,有的话,加入队列,没有的话直接区抢锁;
2024-07-13 17:58:43
357
原创 JVMJava虚拟机详细介绍jvm运行流程jvm学习笔记
java堆事java虚拟机中最大的块内存区域,它和方法区一样是所有线程共享的一块内存区域,还可以细分为新生代(young generation)和老年代(old generation),java堆的主要作用是存放对象的实例,几乎所有对象的实例都会在这里分配内存,需要注意它不是线程安全的,当多个线程同时访问对象时需要使用同步机制来保证线程的安全。以GC Roots 对象作为起点,从这个起点向下搜索引用的对象,搜索走过的路线称为引用链,找到的对象都标记为非垃圾对象,那么其余的对象则是不达对象,
2024-03-03 21:41:04
1143
2
原创 K8S集群搭建,以及可视化界面Dashboard,和在kubernetes上安装kubeSphere
给每台虚拟机设置静态ip,我这边设置的是 192.168.110.29,192.168.110.30,192.168.110.31。1:准备三台虚拟机分别作为master,node1,node2节点。内存按照官方的要求设置为:内存4GB,处理器2核,硬盘大小40G。可以使用最新版本,默认下载最新版本不需要指定版本号。3、安装docker,我们选择固定版本。Linux: CentOS7 64位。此处开始三个虚拟机都要进行设置。
2023-12-25 21:53:17
2257
3
原创 springboot自动装配原理
然后通过AutoConfigurationImportSelector类的 selectImports 方法去读取spring.factories文件中的自动配置类,并按照一定的规则过滤掉不符合要求的组件的类全名,将剩余自动配置类集合返回给IOC容器并将这些组件注册为bean。扫描的范围是启动类的同级路径和子路径,扫描到特定的@Component、@Service、@Controler、@Repository、@Configuration等等注解后,会注册到spring容器中。这些都是需要自动装配的类。
2023-11-17 16:13:28
86
1
原创 排序算法-插入排序
插入排序是一种简单直观的排序算法,基本思想是将待排序的元素分为已排序和未排序两部分(一般前面是已排序,后面是未排序)每次从未排序的部分取出一个元素插入到已排序部分中合适的位置,直到所有的元素都插入到合适的位置
2023-08-23 16:27:15
69
1
原创 排序算法-选择排序
选择排序是一种简单的排序算法,其基本思想是每一次从待排序的数据中选择最小(或者最大)的一个元素,放到序列的起始位置,直到全部待排序的元素排完。
2023-08-23 15:08:17
356
原创 数据结构概述
首先我们应该了解到数据结构分为 物理结构和逻辑结构物理结构就是 数据在计算机内存中的储存形式,这分为顺序储存和链式储存顺序结构就是把数据元素存放在地址连续的储存单元里,其数据间的物理关系和逻辑关系是一样的。一般为数组实现链式存储就是把数据元素放到任意的存储单元里,这些储存地址可以是连续的,也可以是不连续的,通过指针的方式找到下一个存储单元。一般为链表实现逻辑结构表示的是数据元素之间的相互关系,和计算机内存无关,主要是看人为如何设计,主要有四种逻辑关系,集合结构,线性结构,树形结构,图形结构。
2023-08-10 14:35:26
101
1
原创 如何使用springAop实现拦截目标方法,并且给目标方法传值,实现权限等功能。
在拦截方法上around()上加上注解@Around(“getUserInfo()”),这个是表明使用注解拦截目标方法。我是直接在传参中 new User(),需要放在方法参数第一个,因为在拦截器中被赋值到了数组第一个args[0] = user,虽然拦截目标方法很多忠,比如拦截具体方法,拦截某个类中所有方法等,但对于后期突然增加的需求,使用注解的方式比较方便。简单一点的做法,在所有涉及到角色权限的方法上,都加一个方法进行判断用户是否使用的其他角色权限。可以通过反射的方式获取到目标方法的入参。
2023-07-11 11:06:48
598
原创 如何利用MybatisPlus实现乐观锁
引入MybatisPlus的加粗样式拦截器MybatisPlusInterceptor,配置到bean中。一般可以使用在Integer,Long,date类型上,String类型是无法生效的,然后实体类中,需要使用的乐观锁地段上加@Version注解,像这个样子。那么如果不传入version这个值, 则version的值不会改变。向sql语句中传入version的值,打印结果是。执行成功后 version会加1.也不会出现相关的sql语句字段。新建一个类,类中代码如下。
2023-07-07 16:04:28
550
1
原创 ElasticSearch在Windows详细安装过程,整合springboot
ElasticSearch在Windows安装,整合springboot
2022-12-28 15:13:22
677
视图redis工具.zip
2020-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人