- 博客(12)
- 收藏
- 关注
原创 分布式锁的使用:Redisson(redissonClient);以及核心代码分析
所有竞争这把锁的线程都要判断在这个key下有没有自己线程的字段,如果没有则不能获得锁,如果有,则相当于重入,字段值加1(次数)重点在下图,主要实现,然后执行里面的lua脚本语言,返回 数据,就算就算加上锁了(广播0表示资源可用)这里用的数据结构是hash,hash的结构是: key 字段1 值1 字段2 值2。用在锁这个场景下,key就表示锁的名称,也可以理解为临界资源,字段就表示当前获得锁的线程。初始化RedissonLock对象 ,并且根据入参名字相当于创建了一个全局的key的锁。...
2022-08-08 10:56:14 1712 1
原创 自动生成代码方法——---具有解耦行
企业开发中,都在讲高内聚低耦合:这里分享一个解耦的自动生成代码的方法如下:资料:链接:https://pan.baidu.com/s/1vcryN1sW3dccxfAxTiCmhA 提取码:c22n打开文件放在本地,文件如下:1.下载后需要配置数据源等,还有表名等2.保存配置后,按住shift 键 鼠标右键打开窗口,比并且把:Array自动化语句.txt里面的东西赋值进去且执行即可最后生成的代码就在src文件夹下面;最后:虽然和一些插件比起来差不多,但是可以知道在这种流程是怎
2021-07-05 00:19:48 180
原创 如何更优雅的使用多线程-------@Async
@Async注解使用条件:@Async注解一般用在类的方法上,如果用在类上,那么这个类所有的方法都是异步执行的;所使用的@Async注解方法的类对象应该是Spring容器管理的bean对象;调用异步方法类上需要配置上注解@EnableAsync快速使用SpringBoot应用中需要添加@EnableAsync注解,来开启异步调用,一般还会配置一个线程池,异步的方法交给特定的线程池完成,如下:@Configuration@EnableAsyncpublic class AsyncConfigu
2021-06-24 22:55:48 482
原创 Nacos原理简介
简单介绍一下Nacos1.什么是NacosNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 是Spring Cloud A 中的服务注册发现组件,类似于Consul、Eureka,同时它又提供了分布式配置中心的功能,这点和Consul的config类似,支持热加载2.Nacos原理Nacos注册中心分为server与client,server采用Java编写,为client提供注册发现服务与配置服务
2021-05-30 15:52:28 3138
原创 Spring事务方法的相互引用问题
起因:一个方法(A)是查询数据与验证组装数据,另外一个方法(B)更新这条数据所对应的表(执行的时候是方法A中调用方法B);由于这个数据是循环更新,所以我想的是,一条数据更新失败直接回滚此条数据就是,不会影响其他数据,其他的照常更新,所以我就在方法B上加了事务,方法A没有加; 以为很完美,自测一下正常,ok通过,再测试一下报错情况,是否回滚,一测,没回滚,懵圈儿?以为代码写错了,改了几处地方,再测了几次,均没回滚。这下是真难受了。下面开始一步步分析解决问题:首先我们来看下spring事务的传播机制及
2021-05-21 18:06:58 482
原创 关于JVM的常识,你一定要了解
1.什么是垃圾回收机制垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。(jdk自动回收,或者手动System.gc())2.什么时候进行垃圾回收①会在cpu空闲的时候自动进行回收 ②在堆内存存储满了之后 ③主动调用System.gc()后尝试进行回收补充:System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间。它将尝试释放.
2021-04-15 11:13:47 106
原创 kafka启动异常及解决方案
kafka启动:.\bin\windows\kafka-server-start.bat .\config\server.properties异常:[2020-08-06 11:22:05,915] ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain)java.net.BindException: Address already in use
2021-04-02 16:13:50 1363
原创 SpringBoot的自动装配原理
SpringBoot的自动装配原理:首先方法入口从:main方法的run方法里面进去,传入当前类的字节码文件然后再里面会调用run方法,方法里面会有1个this.refreshContext(context);可以成为刷新容器方法主要内容:是让去加载当前类上的注解@SpringBootApplication简要阐述里面的类注解包含:1.@SpringBootConfiguration 相当于一个配置类,里面也可以注入bean,(加个@Bean)2.@ComponentScan 包扫面,可扫
2021-03-31 22:36:31 121
原创 @SpringBootApplication 注解详情
SpringBoot的解析@EnableAutoConfiguration:启用 SpringBoot 的自动配置机制@ComponentScan: 扫描被@Component (@Service,@Controller)注解的 bean,注解默认会扫描该类所在的包下所有的类。@SpringBootConfiguration:允许在 Spring 上下文中注册额外的 bean 或导入其他配置类1.@SpringBootApplication注解的定义这是个组合注解主要包含:@SpringBoot
2021-03-31 22:16:31 125
原创 Spring 如何解决循环依赖问题
Spring的循环依赖;Spring怎么解决循环依赖问题的,首先 Spring是只支持单例的因为如果不支持单例,就不会走生命周期流程,他会在Spring容器初始化的时候就会走bean的生命周期流程,如果是原型,只有在用的时候才回去走bean的生命周期流程1.首先Spring体系中,bean是由BeanDefinition创建的(可以理解为Spring中的一个建模)2.这个时候首先需要先说Spring的Bean的生命周期2.1Spring启动后会扫描把类变成BeanName变成BeanDefini
2021-03-31 22:13:40 140
原创 Spring bean的生命周期
Spring bean的生命周期只有四个主要阶段,其他都是在这四个主要阶段前后的扩展点,这四个阶段是:1.实例化 Instantiation2.属性赋值 Populate3.初始化 Initialization4.销毁 Destruction其中实例化和属性赋值分别对应 构造方法和setter方法 的注入,初始化和销毁是用户能自定义扩展的两个阶段。源码层面:主要过程集中于doCreateBean方法中// 忽略了无关代码protected Object doCreateBean(fin
2021-03-31 22:08:07 92
转载 ElasticSearch分词器简介
介绍:ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。Elasticsearch中,内置了很多分词器(analyzers)。下面来进行比较下系统默认分词器和常用的中文分词器之间的区别。系统默认分词器:1、stand
2020-07-24 15:42:14 404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人