自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 idea中maven项目编译时,调试自定义的annotationProcessor代码

idea中自定义注解调试

2022-08-18 16:46:26 881

原创 linux上安装mongodb

1.MongoDB官网下载 2.linux我用的是centOS7. 想下什么版本自己指定既可,最后下载tgz包. 安装配置. 1.在/usr/local下创建mongodb目录 cd /usr/local //进入local目录 mkdir mongodb //创建mongodb目录 yum install -y lrzsz //下载上传下载命令包,或者自己复制上去 rz //上传文件,将下载好的mongodb包上传到当前目录下 mkdir data // 创建data文件夹用于后续数据库信息保存

2022-05-20 16:15:40 1073 3

原创 多线程事务回滚的处理

这里写目录标题背景介绍示例事务不回滚操作使用sqlSession控制手动提交事务公用的类和方法 背景介绍 1.最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚. 2.在spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程

2021-06-08 17:12:08 5391 31

原创 Springboot文件上传下载

在web开发中,文件上传下载是很常用的功能,spring也集成了相应的工具类. 本文用代码简单示例文件上传下载功能. 文件上传 1.文件上传 //此处只校验文件不为空. protected String upload(MultipartFile file) throws IOException { String fileName = file.getOriginalFilename(); assert fileName != null; Fil

2021-03-22 17:05:20 341

原创 简单了解并发工具类CyclicBarrier的使用

1.介绍 1.1.通过类名字名意思为循环屏障,因为它可以在等待的线程被释放之后重新使用. 1.2.CyclicBarrier允许一组线程全部等待彼此达到共同屏障点,然后再执行线程中await()方法后的代码. 1.3.CyclicBarrier提供了2个构造方法. //创建一个新的 CyclicBarrier,parties为设置的等待数,当线程的等待数即调用await()方法的次数==parties,它将跳闸,即线程再往下执行. CyclicBarrier(int parties) //创建一个新的 C

2021-01-25 10:56:34 171 2

原创 redis主从配置

1.准备两台虚拟机,然后在两台虚拟机上分别安装好redis. 选择其中一台机器为主,更改主的配置文件redis.conf 更改对应的参数. 使用 / 可进行搜索. 改变bind使外部可访问. 设置保护模式为no 设置后台运行 设置日志目录方便查看. 2.从节点的配置也很简单 更改redis的配置, 使用replicaof 在此处将主节点的ip和端口号加上, masterauth 是主节点设置的密码,要在此处校验. 3.启动主机器redis. #带配置文件启动redis,使redis配置文件中的

2021-01-17 15:18:30 242

原创 linux上安装rabbitMQ

1.erlang 1.RabbitMQ依赖Erlang, 所以需要先安装Erlang. 2.下载地址:http://erlang.org/download/ 3.我这边使用的是22.1版本的. 命令:解压,配置,安装,编译.设置erlang环境变量 mkdir -p /usr/local/erlang tar -xvf otp_src_22.1.tar.gz ./configure --prefix=/usr/local/erlang make make install #设置环境变量: vi /etc

2021-01-09 16:43:09 235

原创 并发类CountDownLatch的使用.

介绍: 1.countDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助. 2.countDownLatch用给定的计数器初始化, await()方法用作阻塞,直到由于countDown()方法的调用而导致当前计数器达到零,之后所有的等待线程被释放,这是一个一次性的现象,计数器无法重置. 如需重置计算的版本,可使用CyclicBarrier并发类. 3.应用场景中,可作用于任务的拆分,将一个大的任务拆分成若干个小任务,每个小任务由一个线程执行,最后由大任务统一处理任务结果.

2021-01-04 11:51:25 215

原创 mapstruct 之 实体转换

快捷键目录标题文本样式列表链接代码片表格注脚注释自定义列表LaTeX 数学公式插入甘特图插入UML图插入Mermaid流程图插入Flowchart流程图插入类图 目录复制 mapstruct 之 实体转换MapStruct配置简单使用字段名称不一样进行转换字段名称类型不一样进行转换以及注意点 MapStruct配置 简介: 1.在多模块多层级的开发中,每一层都有自己的数据模型,DO,DTO,VO等. 2.对象与对象之间进行转换,一般通过get,set方法.或者是BeanUtils进行转换,但是对象之间名称不

2020-12-26 14:15:13 1374

原创 了解ReentrantReadWriteLock锁的使用

了解ReentrantReadWriteLock锁的使用简介读读共享写写互斥读写互斥 简介 1.ReentrantReadWriteLock分为读锁和写锁. 2.读锁也称为共享锁,进行读相关操作,多个线程都可获取该锁. 3.写锁也称为互斥锁,进行写相关操作,同一时刻只允许一个线程获取该锁. 读读共享 示例读读共享代码: /** * TODO * 类ReentrantReadWriteLock的使用:读读共享. * * @author 86182 * @version V1.0 * @since

2020-12-19 15:11:59 258 1

原创 了解Lock锁的使用

了解Lock锁的使用简单介绍lock锁的示例两个常见异常Condition等待通知机制的示例 简单介绍 1.在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥. 2.在JDK1.5中新增了ReentrantLock类也能达到此效果,并且在扩展功能上也更加强大,比如多路分支condition通知等功能,而且在使用上比synchronized更加灵活. lock锁的示例 代码示例: /** * 示例reentrantLock类的使用. */ public class MySer

2020-12-12 13:47:37 560 2

原创 创建几种线程池的简单介绍

1.newFixedThreadPool,该线程池使用的是一个无界队列,即会往队列中不断增加任务,如果新增任务的速度大于处理任务的速度,那么有可能会造成内存耗尽. //创建方式 ExecutorService executorFixed = Executors.newFixedThreadPool(5); //查看源码 从源码得知,该线程池用的LinkedBlockingQueue阻塞队列,该阻塞队列如果没有设置数量,默认为Integer.MAX_VALUE 核心线程数和最大线程数是一样的.

2020-12-04 21:14:09 264 1

原创 了解多线程中的死锁及减少死锁的方法

了解死锁死锁是如何产生的?通过控制锁顺序避免死锁尝试定时的锁 死锁是如何产生的? 介绍: 1.当一个线程永远占有一个锁,而其他线程去尝试获取该锁,它们将永远被阻塞. 2.如果一个线程A占有锁A时,想要获得锁B,同时,线程锁B占有锁B,想要获得锁A,两个线程将永远等待下去,这就导致了死锁的产生. 3.示例: /** * TODO * 测试实体 * * @author 86182 * @version V1.0 * @since 2020-11-27 18:17 */ public class

2020-11-27 20:13:39 337 2

原创 了解java中的volatile关键字的使用

了解java中的volatile关键字的使用volatile介绍代码示例volatile的可见性代码示例volatile不支持原子性 volatile介绍 1.volatile是java中的一个关键字,用于java多线程之间的可见性. 2.volatile用于解决让线程强制性的从公共内存中读取变量的值,使被修饰的变量在多个线程中可见. 3.volatile不支持原子性. 4.volatile只用于修饰变量. 代码示例volatile的可见性 示例: 1.没有volatile会发生什么问题呢? //实体 p

2020-11-20 14:31:38 187 2

原创 了解java中的synchronized关键字

synchronized是java的一个关键字,用于java多线程中的同步. 1.synchronized可修饰方法上,被修饰的方法为同步方法,多个线程访问同一对象的同步方法是同步执行的,即排队执行,哪个线程先执行该方法就持有该方法的所属对象的锁Lock,其他线程就处于等待状态。 2.synchronized可修饰于代码块中,被修饰的代码块为同步代码块,多线程访问时,一个线程访问object的synchronized同步代码块,其他线程仍然可以访问该object对象中非synchronized(this)代

2020-10-30 13:55:08 400 1

原创 记录本地连接虚拟机上的redis

1.首先把redis下载在虚拟机上,这个可以参考redis官网: https://redis.io/download 下载编译完成后,然后进入redis中启动redis, 到redis的bin目录下启动. 带配置文件的启动命令,目录为对应conf的目录: ./redis-server /usr/local/redis/etc/redis.conf 然后启动客户端,命令: ./redis-cli 然后就可以简单的使用redis的命令设置值,取值. 2.然后在项目引入redis的依赖 <de

2020-10-20 17:50:21 562

原创 使用poi导入excel详细代码

使用poi导入excel详细代码 1.导入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.10.1</version> </dependency> <

2020-08-18 18:21:34 6375 7

原创 记录学习FeignClien遇到的坑

1.报错404路径错误 第一次测试调用报错404. postman调用测试环境是没问题的. 代码如下: master-data-main是nacos微服务服务列表的服务名.也是调用的测试环境. 经过对比发现,path少了一个master-data,加上master-data就解决了. 2.调用成功后返回数据为null. 启动本地服务,调用测试环境的测试接口. controller. 调用服务. 调用结果和预期的不符合. 服务方接口. 经过排查发现,调用的服务返回的一个Resultsjson

2020-05-19 11:52:21 774 2

空空如也

空空如也

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

TA关注的人

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