自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 mongo索引中的顺序

我们在使用mongo中可能并未使用排序,但在查询出来数据自动排好序了,或者我们需要使用mongo的自动排序完成一些功能。1、当无索引的情况下的查询db.mongoTest2.find({"valueStr2":"nihao2"});2、创建索引db.mongoTest2.ensureIndex({ "valueStr2" : 1, "time" : -1 }, {"name" : "test3_index"}, {"background" : true });3、使用索引后的排序db

2020-05-30 20:03:30 1428

原创 ThreadLocal源码认识和理解

ThreadLocal是一个非常常用对象,线程的变量副本,每个线程隔离,但对具体如何实现线程隔离,这篇文章试着去了解一下。hreadLocal代码演示public class ThreadLocalDemo { private static ExecutorService executor = new ThreadPoolExecutor(5, 5, 10L, TimeUnit.SECONDS, new LinkedBlockingQueue&l

2020-05-30 18:11:50 262

原创 NIO的介绍(与BIO的区别及使用模型)

阻塞与同步1、阻塞和非阻塞阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候一直等待,直到有数据返回,否則一直等待在那里。非阻塞:当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果数据已经准备好,也直接返回。如果用一个烧水例子解释这个问题:阻塞:就相当于水壶放在放到火上,立等水开才能知道水是否开了。非堵塞:就相当于把水壶放在火上,随时去看,都知道水开还是没开而不是要等到水开了,才能告知结论。如果采用这种方案就是,可以看电视时

2020-05-24 22:39:46 514

原创 mybatis中Mapper接口的动态代理实现及仿照其例子实现接口动态注入生成实现类

我们在使用mybatis的时候,一般都只需写一个Mapper的接口类和xml文件。我们只知道接口是不能够实现功能的。这篇文章主要想通过对mybatis代码的理解,找出mybatis如何通过接口就实现对数据库的增删改查的。一、mybatis源码理解1、我这里将MapperScannerConfigurer 作为mybatis配置核心类,从这作为入口理解。aware接口:翻译过来是知道的,已感知的,意识到的,所以这些接口从字面意思应该是能感知到所有Aware前面的含义。BeanNameAware的例

2020-05-17 16:09:21 1416

原创 RocketMQ顺序消费

一、rocketmq顺序消费的原理1、消息的有序性是指消息的消费顺序能够与消息的发送顺序一致。但是有时候我们从业务需要上面并不需要保证所有消息严格按照消费顺序完全一致。例如,一个订单的下单、付款、出库等操作是不同替换顺序。但是有A订单和B订单,并不需要保证A订单与B订单的顺序。2、RocketMQ采用了局部顺序一致性的机制,一组消息发送到同一个队列中来保证发送顺序的有序性,然后再由消费者进行。消费的时候通过一个队列只会被一个线程取到 ,第二个线程无法访问这个队列 来保证队列有序性。rocketmq可以

2020-05-10 17:59:10 2722

原创 CyclicBarrier 线程同步器

CountDownLatch,Semaphore,CyclicBarrier 都是在 JUC 下包含了一些常用的同步工具类,其实将其放在一起介绍印象会更加深刻,由于对其了解使用的先后顺序,造成并没有一起来介绍。CountDownLatch:当一个线程调用await方法时,就会阻塞当前线程。每当有线程调用一次 countDown 方法时,计数就会减 1。当 count 的值等于 0 的时候,被阻塞的线程才会继续运行。CountDownLatch 的同步使用方法Semaphore:Semaphore

2020-05-08 22:35:29 291 1

原创 Spring循环依赖(源码上分析)

一、spring bean 的创建 四个阶段1、实例化 instantiation(createBeanInstance)2、属性赋值 Populate (populateBean)3、初始化 Initialization(initializeBean)4、销毁 Destruction(ConfigurableApplicationContext#close())二、DefaultSin...

2020-05-05 23:08:41 212

原创 zookeeper的介绍(初步认识)

一、zookeeper是什么集中式存储数据服务,通过监听通知机制来实现来实现分布式应用的协调。1、目前比较常见应用场景有:分布式锁(临时节点)服务注册与订阅(共用节点)分布式通知(监听znode)服务命名(znode特性)数据订阅、发布(watcher)2、zookeeper数据模型zookeeper 维护了一个类似文件系统的数据结构,每个子目录(/znode1、/znode1...

2020-05-04 23:21:10 245

原创 雪花算法的java实现(不用设置机器id和数据id)

Snowflake生成的是Long类型的ID,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特。Snowflake ID组成结构:正数位(占1比特)+ 时间戳(占41比特)+ 机器ID(占5比特)+ 数据中心(占5比特)+ 自增值(占12比特),总共64比特组成的一个Long类型。其实我们通过图片可以看出来,我们如果保证单机唯一,只需要保证前面 时间戳(...

2020-05-02 18:11:16 2722 1

原创 文件下载和二进制文件(图片、mp4视频)预览响应头的设置(防止中文名名乱码)

工作中文件下载是一个非常常见的功能,但请求头设置却经常容易忘记。这里写一个样例供大家参考。这里设置文件编码格式,主要防止下载文件中文名乱码。一、文件下载1、主要设置 下载的类型2、设置下载文件的名称 @GetMapping("/downloadFile") public void downloadFile(HttpServletResponse response,@RequestP...

2020-05-01 22:22:04 3186

所辖行政区对应的表和数据

我们很多时候都需要所辖行政区的查询的接口,我们大部分都有已经存在的接口供我们调用。

2020-12-30

空空如也

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

TA关注的人

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