自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Mysql事务窥探

一.事务的定义事务是"一组原子性的SQL命令",或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组SQL的全部语句,那么就执行该组SQL。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。二.事务四大特征(ACID)原子性:原子性是指事务的原子性操作,对数据的修改要么全部执行成功,要么全部失败一致性:一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执

2021-05-31 13:43:50 117

原创 数据新增后,线程去查询出现的问题

事情是这样的:我的业务要求传入一个json去解析然后插入几张表中,并且需要生成pdf文件; 由于生成pdf时间较长我决定采用线程的形式进行单独生成不会影响主业务的返回,并且也在业务允许。 进入方法解析完json组装车辆信息然后进行了车辆信息保存的操作接下来是一些其他表的插入,在方法最后把生成pdf需要的信息放入到队列中我们在走到线程里面查看具体实现方法在没修改之前传入的是车辆id然后根据车辆id去获取车辆信息修改前通过传入的车辆id去数据库获取车辆信息,但就是这一步容易出现问题,输入

2021-05-13 11:20:04 587

原创 线程配合队列使用

线程配合队列使用在这之前写过一篇线程池的但其中一些并没有介绍清楚,在手打几遍后有了更深的理解,故此记录下在项目中有个功能模块需要本地生成pdf并且上传至云服务器,这个时候用线程处理比较合理,并且之前也用过线程池并且当前场景也适合,所以最后决定使用线程池来完成。首先需要明白我们要把需要的值组装成对象,再把对象扔到队列当中,接着去定义一个线程池然后遍历队列取值去做业务逻辑处理,最后启动线程整个过程就结束了。通过构造方法塞值ThreadPoolUtil.CreatePdfTask createPd

2021-05-10 16:51:11 313

原创 logback实现每个类和包自定义级别输出

目的由于要实现需求:将特定的跟踪日志写入单独的日志文件,且其他的日志输出不受影响。故需要实现一个自定义的日志级别并指定配置文件,将特定的日志信息输入特定文件。1、自定义日志级别方式如下:代码文件:Logger monitorLogger = LoggerFactory.getLogger(“monitor”);//在声明实例时创建自定义级别标签,monitor就是自定义的标签。2、输出日志采用这样的方式:monitorLogger.info("======info");3、配置文件修

2021-05-06 17:22:39 2431

原创 修改图片画矩形输出二进制流

使用ByteArrayOutputStream输出二进制流文件话不多说直接上代码标题实现类 public byte[] getPicDataById(String id,String path) throws IOException{ BufferedImage image = ImageIO.read(new File(path));//获取图片 Graphics g = image.getGraphics(); g.setColor(Color.G

2021-03-23 10:48:13 109

原创 集合面试必看

数组和集合的比较在说集合之前先谈下数组的概念;数组:声明一个引用该数组的变量,并指明整个变量可以引用的数组类型。一旦声明了数组的大小,就不能再修改。这里的数组长度也是必需的,不能少。为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java 提供了集合类;集合类存放于java.util包中;数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:数组能存放基本数据类型和对象,而集合类存放的都是对象的引用,

2021-03-10 14:18:43 221

原创 Volatile关键字

简介Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比sychronized关键字更轻量级

2021-03-10 09:13:43 100

原创 线程池的使用

线程池的使用根据项目需要进行对图片的压缩和上传,但由于压缩和上传相应时间比较长,返回时间不在允许范围内故此需要优化;优化方案最终采用线程池的形式降低系统资源消耗,以下为实现过程...

2021-03-10 09:13:23 75

原创 synchronized锁升级过程

synchronized锁升级过程接触过线程安全的同学想必都使用过synchronized这个关键字,在java同步代码快中,synchronized的使用方式无非有两个:1通过对一个对象进行加锁来实现同步;synchronized(lockObject){ ...}2对一个方法进行加锁实现同步public synchornized void test(){ ...}无论是对一个对象进行加锁还是对一个方法进行加锁,实际上,都是对对象进行加锁。对于方式2,实际上虚拟机会

2021-03-02 10:03:56 5705 8

原创 springboot读取环境变量中数据库以及Redis配置

springboot读取环境变量中数据库以及Redis配置文章目录前言一、配置环境变量二、使用步骤2.读入数据前言微服务开发时,一些配置信息(比如数据库用户名,密码)从配置文件中读取,但在paas中,需要从docker的环境变量中读取提示:以下是本篇文章正文内容,下面案例可供参考一、配置环境变量配置环境变量是每个程序员的必会技能,右击电脑属性,高级系统设置中的环境变量或者是在idea中点击server二、使用步骤2.读入数据在配置的yml 中找到数据库的url,账号密

2020-12-22 15:46:44 1505 1

原创 关于springboot扫描配置遇到的坑

关于springboot扫描配置遇到的坑项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer);

2020-12-09 18:05:59 1006

空空如也

空空如也

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

TA关注的人

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