8 yamaxifeng_132

尚未进行身份认证

我要认证

努力、奋斗

等级
TA的排名 2w+

Java的spi介绍和简单应用

1.什么是java的spiSPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现。具体是在JAR包的"src/META-INF/services/"目录下建立一个文件,文件名是接口的全限定名,文件的内容可以有多行,每行都是该接口对应的具体实现类的全限定名.2.运用场景比如你想扩展

2020-10-14 19:17:21

kafka 配置文件参数详解

kafka的配置分为 broker、producter、consumer三个不同的配置一 BROKER 的全局配置最为核心的三个配置 broker.id、log.dir、zookeeper.connect 。------------------------------------------- 系统 相关 -------------------------------------------##每一个broker在集群中的唯一标示,要求是正数。在改变IP地址,不改变broker.id的话不会

2020-09-26 10:12:17

JAVA语言之mybatis的底层原理分析及相关配置

摘要:本文主要介绍了JAVA语言的mybatis的底层原理分析及相关配置,通过具体的解释说明,希望对大家的JAVA语言的学习有所帮助,接下里就让我们一起来看看吧。本文主要介绍了JAVA语言的mybatis的底层原理分析及相关配置,通过具体的解释说明,希望对大家的JAVA语言的学习有所帮助,接下里就让我们一起来看看吧。1.mybatis的前生后世MyBatis可以将SQL语句配置在XML文件中,这避免了JDBC在Java类中添加SQL语句的问题;通过MyBatis提供的输入参数映射...

2020-09-06 15:36:11

SpringBoot 启动成功初始化数据

本章节将介绍通过实现 CommandLineRunner 和 ApplicationRunner 接口,实现 Spring Boot 启动成功初始化数据。如果你有一些资源需要在 Spring Boot 启动成功后才去加载,如:预加载配置、加载定时任务、初始化工作等。这些可以通过 Spring Boot 给我们提供的CommandLineRunner 接口和 ApplicationRunner 接口实现。CommandLineRunner 接口CommandLineRunner接口是在容器启动.

2020-09-04 16:25:32

支持多线程的Redis 6.0终于发布了!

支持多线程的 Redis 6.0 版本于 2020-05-02 终于发布了,为什么 Redis 忽然要支持多线程?如何开启多线程?开启后性能提升效果如何?线程数量该如何设置?开启多线程后会不会有线程安全问题?多线程的实现原理是怎样的?带着这些疑问,我们来开启 Redis 新特性-多线程连环 13 问。Redis 6.0 来了在全国一片祥和 IT 民工欢度五一节假日的时候,Redis 6.0 不声不响地于 5 月 2 日正式发布了,吓得我赶紧从床上爬起来,学无止境!学无止境!对于 6.0 版本.

2020-09-03 18:26:18

SpringBoot配置文件priperties大全

flyway.baseline-description执行基线时标记已有Schema的描述。flyway.baseline-on-migrate在没有元数据表的情况下,针对非空Schema执行迁移时是否自动调用基线。(默认值:false 。)flyway.baseline-version执行基线时用来标记已有Schema的版本。(默认值: 1 。)flyway.check-location检查迁移脚本所在的位置是否存在。(默认值: false 。)flyway.clean-on-vali.

2020-06-28 20:50:54

mybatis generator插件自动生成代码使用指导

1、下载generator 插件mybatis-generator-core-1.4.0.jar2、配置generator.xml配置文件,根据自身项目修改下面加注释的地放。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybat

2020-05-15 09:26:02

http请求报文格式和响应报文格式

超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应。HTTP请求报文HTTP 请求报文由请求行、请求头部、空行 和 请求包体4 个部分组成,如下图所示:下面对请求报文格式进行简单的分析:请求行:请求行由方...

2020-04-25 21:52:17

TIME_WAIT和CLOSE_WAIT状态区别

在服务器的日常维护过程中,会经常用到下面的命令:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 它会显示例如下面的信息:TIME_WAIT 814CLOSE_WAIT 1FIN_WAIT1 1ESTABLISHED 634SYN_RECV 2LAST_ACK 1常用的三个状态...

2020-04-25 21:47:56

JVM指令手册

1 栈和局部变量操作1.1 将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_...

2020-04-19 21:04:54

Zookeeper典型应用场景介绍

博客转自:https://www.cnblogs.com/jian0110/p/10650396.html引言  ZooKeeper是中典型的pub/sub模式的分布式数据管理与协调框架,开发人员可以使用它进行分布式数据的发布与订阅。另外,其丰富的数据节点类型可以交叉使用,配合Watcher事件通知机制,可以应用于分布式都会涉及的一些核心功能:数据发布/订阅、Master选举、命名服务、...

2020-04-18 17:12:10

Shenandoah GC:一个来自OpenJDK12的全新并发压缩垃圾回收器

是不是才听说了JDK11的ZGC,并且还没搞懂?不好意思,OpenJDK12马不停蹄的带来了Shenandoah GC。概述JDK12新增的一个名为Shenandoah的GC算法,它的evacuation阶段工作能通过与正在运行中Java工作线程同时进行(即并发,concurrent),从而减少GC的停顿时间。Shenandoah的停顿时间和堆的大小没有任何关系,这就意味着无论你的堆是...

2020-04-14 10:15:12

Base32编码

一、二进制串进行Base编码步骤 首先将二进制串划分每5位一组,不足5位补0。 然后将各组的5位二进制串转成十进制(5bits对应着10进制的数值为0-31)。 用0-9、b-z(去掉a、i、l、o)这32个字母进行Base32编码,即对照下标将其转换为字符串。 base32编码.png 二、举例如何对位置编码得到字符串举例说明,我们如何对北海公园的位置...

2020-04-09 09:56:29

redis zset底层实现原理

一.Zset编码的选择1.有序集合对象的编码可以是ziplist或者skiplist。同时满足以下条件时使用ziplist编码:元素数量小于128个 所有member的长度都小于64字节 其他: 不能满足上面两个条件的使用 skiplist 编码。以上两个条件也可以通过Redis配置文件zset-max-ziplist-entries 选项和 zset-max-ziplist-v...

2020-04-08 22:29:53

解决hash冲突的三个方法

通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题。创建哈希表和查找哈希表都会遇到冲突,两种情况下解决冲突的方法应该一致。下面以创建哈希表为例,说明解决冲突的方法。常用的解决冲突方法有以下四种:1 开放定址法这种方法也称再散列法,其基本思想是:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p...

2020-04-08 21:56:14

三个线程循环打印ABC10次的几种解决方法

题目:有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕打印10次ABC整体思路:该问题为三个线程的同步唤醒机制即ThreadA->ThreadB->ThreadC->ThreadA循环执行三个线程。public class MyThreadPrinter2 implements Runnable { private String name; p...

2020-04-03 22:12:56

Java 14 新功能介绍!

Java 14预定于3月17日发布。那么,14版究竟有什么新功能,对于整天写代码、维护代码的Java开发者来说,哪些功能最有用呢?正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消作者 | Raoul-Gabriel Urma译者 | 弯月,责编 | 郭芮出品 | CSDN(ID:CSDNnews)以下为译文:第14版包含的JEP...

2020-03-22 15:50:48

JAVA8的java.util.function包

JAVA8的java.util.function包一 概述name type description Consumer Consumer< T > 接收T对象,不返回值 Predicate Predicate< T > 接收T对象并返回boolean Function Function< T, R >...

2020-03-10 19:42:19

zuul入门(1)zuul 的概念和原理

一、zuul是什么zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。Zuul 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。zuul的例子可以参考 netflix 在github上的 simple webapp,可以按照netfli...

2020-01-19 17:04:16

Hystrix熔断原理

Netflix的开源组件Hystrix的流程:图中流程的说明:将远程服务调用逻辑封装进一个HystrixCommand。 对于每次服务调用可以使用同步或异步机制,对应执行execute()或queue()。 判断熔断器(circuit-breaker)是否打开或者半打开状态,如果打开跳到步骤8,进行回退策略,如果关闭进入步骤4。 判断线程池/队列/信号量(使用了舱壁隔离模式)是否跑满...

2020-01-19 16:56:48

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。