自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring源码笔记之SpringIOC--(5)BeanFactory的扩展之ListableBeanFactory

设计只提供了获取单个Bean的能力,为了额外提供获取所有bean(List Beans)的能力,定义了。中获取所有bean的操作会不会去父容器parentBeanFactory中搜索呢?都需要提供遍历bean的能力,但是这是一个比较常用的能力。在spring中我们可能会有获取所有bean的需求,但是。BeanFactory扩展,提供获取所有Bean的能力。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。工具类实现递归搜索父容器所有bean的诉求。

2024-02-20 08:00:00 890

原创 Spring源码笔记之SpringIOC--(4)BeanFactory的扩展之HierarchicalBeanFactory

在实际使用过程会通过引用父容器parent实现BeanFactory的嵌套调用,如下。BeanFactory扩展,提供获取所有Bean的能力。提供配置、分析和修改bean定义,以及预实例化单例能力。先引用BeanFactory的类继承关系图来看一下。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。Spring默认的BeanFactory实现。提供配置BeanFactory的能力。分层功能的扩展,它提供了。这种关系有点类似与单链表。

2024-02-19 08:00:00 700

原创 Spring源码笔记之SpringIOC--(3)什么是BeanFactory?

是SpringIOC的最顶层接口,涵盖了IOC容器最基本的操作。提供了IOC容器获取所有Bean、配置Bean的额外能力。所有的实现类持有所有Bean的定义,用一个唯一的字符串(即Bean的名字)区分。提供单例Bean(singleton scope)与多例Bean的能力(prototype scope),自从Spring2.0后Bean的作用范围不单单局限于单例与多例,还具有提供请求(request)与对话(session)级别的范围。是IOC容器注册Bean的入口,也是Bean配置中心。

2024-02-18 08:00:00 717

原创 Spring源码笔记之SpringIOC--(2)从BeanDefinition到Bean实例

BeanFactory扩展,提供获取所有Bean的能力。提供配置、分析和修改bean定义,以及预实例化单例能力。)提供了获取bean实例的方法。BeanFactory扩展,提供访问父容器的功能。BeanFactory扩展,提供自动注入的能力。Spring默认的BeanFactory实现。注册BeanDefinition接口。提供配置BeanFactory的能力。

2024-02-17 23:06:24 1030

原创 Spring源码笔记之SpringIOC--(1)从XML文件到Bean的描述对象BeanDefinition

会被递归调用,BeanDefinitionParserDelegate是类内的对象,所以为了保证递归调用时类内能够使用正确的Delegate,此处。的set中,如果能add说明Resource未被加载,等加载完成后再remove,避免重复加载相同的Resource。最开始学习spring的入门实践是,编写一个xml文件,然后利用spring读取xml文件中配置的bean。的注册过程,但是实际使用IOC过程中,并不是直接使用。编写代码加载这个bean,并获取bean的实例。具体bean的加载实现在。

2024-02-17 22:58:57 635

原创 Kubernetes入门笔记 ——(3)理解pod对象

一个有A、B两个容器的pod,如果使用docker拉起,那AB会存在依赖关系,如A先启动,B共享A的Volume等资源。Infra容器必须占用足够小的资源,它使用k8s.gcr.io/pause的特殊镜像,是一个由汇编语言编写、永远处于暂停状态的容器,只有100-200KB。所以对于Linux进程组中每一个进程,k8s中都需要一个单独的容器,这些容器需要互相依赖紧密合作,pod的概念就应运而生。容器和pod是什么关系?pod只是逻辑的概念,pod内的容器共享了某些资源,k8s引入pod目的是容器设计模式。

2023-12-09 17:42:00 520

原创 Kubernetes入门笔记——(2)k8s设计文档

​k8s最初源自谷歌的Brog项目,架构与其类似,主要包括etcd、api server、controller manager、scheduler、kubelet和kube-proxy等组件。: 负责资源的调度, 按照预定的调度策略将 Pod 调度到相应的机器上;:负责维护容器的生命周期,也负责磁盘(CVI)和网络(CNI)的管理。api server里又有认证、鉴权、REST接口、调度触发等模块。:负责维护集群的状态,比如故障检测,自动扩展、滚动更新等。:资源操作的唯一入口,并提供认证、鉴权等功能。

2023-12-06 23:55:24 814

原创 Kubernetes入门笔记——(1)Kubernetes是什么

容器比docker是一个更大的概念,一开始Google工程师便使用Linux的Namespace技术,将多个应用安装在一台服务器上并相互隔离。这样一个docker容器只能“看到”自己的进程,且网络、存储、计算等资源都是被隔离和限制的,类似于运行在一个沙箱中。Kubernetes是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、扩缩容、运维等功能。k8s集群提供了多个容器的编排、扩展、资源管理、运维等一系列功能,基于容器的部署更为方便,可靠性更高,是一个强大的容器管理框架。

2023-12-06 22:44:55 471

原创 日志框架LOG4J2系列六——log4j2使用包装器

slf4j+log4j2组合使用时,有时会使用包装器LoggerWrapper(装饰器LoggerDecorator)对原生的Logger能力进行增强,如修改日志的入参或对日志增加一些定位信息。,并在打印位置时使用它在每个日志事件中堆栈进行遍历,打印全限定类名(FQCN)的上一个堆栈的行号。没有指定FQCN,导致Log4j2认为FQCN是其内部的Logger,他的上一层日志事件是。期望日志为打印业务日志的类名与行号,使用log4j2的。发现log4j2打印的行号错误,都打印相同的行号,且是。

2023-11-02 12:07:09 260

原创 MapStruct使用指南(二)——MapStruct数据类型转换

如果Mapstruct有些场景不能完成,可以自定义转化方法// 自定义方法实现 static PersonDto toPersonDto(Person person) {} }也可以使用@Mapping的表达式属性expression显式指定某一个参数。注意expression不会自动导入,所以表达式中要使用其他类的方法,要带全类名(包名.类名.函数名)或者使用@Mapper的imports显式导入所需要的类。

2023-07-05 23:46:51 6963

原创 MySQL学习笔记(2)——MySQL的锁

1、MySQL索引的类型主要有哪些?B-Tree索引、哈希索引、空间数据索引(R-Tree)、全文索引、其他索引(聚簇索引、覆盖索引等)。2、常见存储引擎与其支持的索引?B-Tree索引:InnoDB,MyISAM,NDB(大部分存储引擎都支持)哈希索引: Memory空间数据索引:mysql功能并不完善, PostgreSQL数据库PostGIS较好全文索引:MyISAM聚簇索引: InnoDB覆盖索引:InnoDBB-TREE索引如何理解?...

2022-03-27 23:38:58 395

原创 MySQL学习笔记(1)——MySQL的并发、事务与MVCC

基本知识一、MySQL的并发、事务与MVCC1.1 MySQL的架构1.2 并发控制1.2.1 读写锁1.2.2 锁粒度1.3 事务1.3.1 事务的四个特性ACID1.3.2 死锁1.3.3 事务日志1.3.4 隔离级别产生的问题1.3.4.1 三种因隔离级别产生的问题1.3.4.2 事务的四种隔离级别1.3.4.3 修改事务的隔离级别1.3.5 事务的自动提交1.3.6 事务型表与非事务型表1.3.7 InnoDB隐式与显式锁定1.4 多版本并发控制(MVCC)1.4.1MVCC的特性1.4.2 Inn

2022-01-09 16:04:38 658

原创 Docker实战-第一章欢迎来到Docker世界

docker是包括一个命令行程序、后台守护进程和一组远程服务,它简化了安装、运行、发布和删除软件的工作。docker实现的基础是UNIX的容器技术。所以在docker出世之前已经有容器的概念,而且像谷歌一类公司也在探索自己的容器,docker将容器技术提供了更为简便的容器实现。容器是指隔离应用程序与外部资源的运行环境。最开始使用容器仍需要手动配置,非常容易出错。docker基于现有容器引擎,根据最佳实践提供了一致的docker构建方案。

2023-09-19 08:52:04 343

原创 Java反射获取所有Controller和RestController类的方法

每个http请求基本都会使用@RequestMapping注解。

2023-08-14 22:34:44 521

原创 SpringFramework源码分析(一)——源码下载与编译

如果Mapstruct有些场景不能完成,可以自定义转化方法// 自定义方法实现 static PersonDto toPersonDto(Person person) {} }也可以使用@Mapping的表达式属性expression显式指定某一个参数。注意expression不会自动导入,所以表达式中要使用其他类的方法,要带全类名(包名.类名.函数名)或者使用@Mapper的imports显式导入所需要的类。

2023-07-13 13:00:57 542

原创 MapStruct使用指南(一)——MapStruct引入与lombox配合使用

MapStruct是一个开源的基于Java的代码生成器,用于创建实现Java Bean之间转换的扩展映射器。在DDD多模型之间的转换有重要作用

2023-07-04 20:35:38 839

原创 Java获取当前的UTC时间

Instant获取的是格林威治标准时间(UTC时间)。因为Instant是表示时间戳的对象,它不依赖于时区信息。但是在显示Instant对象时,需要将其转换为特定时区的本地时间。但是此修改可能是全局性的,建议在代码启动之初设定全部使用同一时区时间,后面就不再频繁更改,避免产生时间错乱问题。java中如何获取utc时间,并转为Date对象,这是一个常见的问题。获取了UTC的毫秒时间,然后new一个Date对象。那么为什么不能获取,如何正确获取utc时间呢?时打印的是带时区的时间,而非UTC时间。

2023-03-22 00:32:00 4551

原创 Markdowm使用mermaid

介绍Markdowm如何使用mermaid,包括图(graph)、UML类图(classDiagram)、时序图(sequenceDiagram)等

2023-03-04 23:24:41 848

原创 Java读取文件为字符串方法

【代码】Java读取文件为字符串方法。

2023-02-20 00:28:02 4381

原创 Linux主机熵值不足导致SecureRandom线程阻塞问题

Linux主机熵值不足导致SecureRandom线程阻塞问题linux操作系统熵值不够,导致使用安全随机数时,长时间线程阻塞。问题定位使用jdk远程debug,发现线程堆栈停在SecureRandom.nextBytes()上,出现阻塞状态。表现为程序长时间无法向下运行。问题根因jre的安全随机数会使用linux的随机数生成器(在linux上实际上使用的是/dev/random或者/dev/urandom)来生成安全随机数,即提供永不为空的随机字节数据流。默认会使用阻塞算法获取随机数,如果熵值不

2022-10-11 23:36:26 2665

原创 SpringBoot系列——SpringBoot整合mybatis+Druid

2.1.2 Springboot配置文件mybatis-config.xml2.2 SpringBoot整合Mybatis+Druid2.2.1 pom依赖2.2.2 Springboot配置文件2.2.3 启动工程访问druid监控使用上面配置的与用户密码,访问例如创建一个job表,根据job_id查询job_status2.2.4.2 PO对象2.2.4.3 dao层接口与Mapper文件JobDao.javaJobMapper.xml2.2.4.4 修改MAVEN编译打

2022-08-15 23:59:40 910

原创 解决mybatis报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

解决mybatis报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):检查mapper.xml文件是否在工程中生效检查dao层接口定义是否正确检查xml中mapper标签的namespace配置是否正确检查xml中语句配置是否正确1. 检查mapper.xml文件是否在工程中生效Mybatis的mapper.xml文件生效是由mapperLocations加载的SqlSessio

2022-07-21 17:26:19 808

原创 Java如何优雅地实现数组集合的相互转换

【问题】将转为一维int型数组【方法】使用 + String一维数组转int二维数组(String[] to int[][])【问题】将转为二维int型数组【方法】使用List转Map【问题】将一个List对象转为Map,其中List是类似如下结构:【方法】 +...

2022-07-17 22:11:01 573

原创 Java如何优雅地合并多个List

有时候我们会遇到:如何将的所有值合并为一个对象,这时候就可以使用。示例如下:输出为:Stream.flatMap()方法官网解释:上述解释可能比较难理解,这里更通俗的解释是,flatMap对流中的元素使用映射函数后再平铺一个流进行返回。所以可以理解上述用例代码,返回的是一个所有元素都为的流,再使用,将每个中的所有元素变为一个流,这样原本由3个List,每个List5个元素的流, 变成了15个String元素的流,然后再合并可以转为一个List。...

2022-07-06 23:21:09 3260

原创 Spring-Kafka系列(3)—— SpringKafka消费者监听MessageListener

之前已经介绍了通过和工具来消费数据。下面介绍SpringKafka消费数据的方式——kafka消息监听器。Kafka的消息监听一般可以分为:1.单条数据监听;2.批量数据监听。是的消息监听器接口,也是一个函数式接口,利用接口的方法可以实现消费数据。基于此接口可以实现单条数据消息监听器接口、多条数据消息监听器接口、带ACK机制的消息监听器和MessageListenerGenericMessageListener单条数据监听器BatchMessageListener批量数据监听器AckowledgingMe

2022-06-23 19:33:24 5908

原创 Spring-Kafka系列(2)——SpringKafka生产者KafkaTemplate

SpringBoot为Kafka提供了两种配置方式SpringBoot提供了配置类,且会将开头的配置项值注入的配置类中在使用Kafka配置项时只需要将其注入即可在spring的配置文件中配置如下:2.2 SpringKafka生产者KafkaTemplate2.2.1 创建一个生产者KafkaTemplate创建流程:application.ymlKafkapropertiesProducerFactoryKafkaTemplate2.2.2 KafkaTemplate发送消息方法Kafka

2022-06-20 12:39:03 6443 2

原创 SpringKafka无法提交offset问题:Group coordinator not available

SpringKafka无法提交offset问题:Group coordinator not available在使用SpringKafka时,无法提交offset,提交时报错:2022-05-28 17:24:32.078 INFO 14584 --- [umer_numb-0-C-1] o.a.k.c.c.internals.AbstractCoordinator : [Consumer clientId=consumer-consumer_numb-1, groupId=consumer_num

2022-05-28 18:15:17 3830

原创 Spring-Kafka系列(1)——Kafka集群部署与常用命令

一、Kafka集群部署1.1 部署ZookeeperKafka依赖zookeeper对Kafka服务器broker进行监控,所以需要先部署zookeeper,部署可见https://blog.csdn.net/Numb_ZL/article/details/123168037?spm=1001.2014.3001.55021.2 Kafka基本参数介绍参数含义broker.id=0类似于zookeeper的myidlog.dirs=/home/kafka/logs指定

2022-05-19 22:04:39 1242

转载 约瑟夫问题

约瑟夫问题II现有n个人围坐一圈,顺时针给大家编号,第一个人编号为1,然后顺时针开始报数。第一轮依次报1,2,1,2…没报1的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…没报1的人都出局。以此类推直到剩下以后一个人。现给定一个int n,要求返回最后一个人的编号。题解解题思路,模仿约瑟夫环问题假设n=30, 每次跳跃距离为m, 初始为m=2第一次筛选后剩下为 [29, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 2

2022-05-08 21:34:49 596

原创 如何删除kafka中marked for deletion的topic

如何删除kafka中marked for deletion的topic如何删除kafka中marked for deletion的topic方法1 开启配置项delete.topic.enable=true方法2 Zookeeper中删除如何删除kafka中marked for deletion的topic如果Broker中没有开启配置项delete.topic.enable=true,则使用/bin/kafka-topics.sh --delete是不会彻底的删除一个topic,而是把topic的状态

2022-05-05 23:33:29 1217

原创 ZK报错QuorumPeerConfig$ConfigException: Unrecognised peertype: 2181

报错信息2022-05-04T02:40:15.055579600Z ZooKeeper JMX enabled by default2022-05-04T02:40:15.058493700Z Using config: /opt/zookeeper/bin/../conf/zoo.cfg2022-05-04T02:40:16.454329400Z 2022-05-04 02:40:16,443 [myid:] - INFO [main:QuorumPeerConfig@135] - Readi

2022-05-04 10:46:41 834

原创 Docker容器运行报错standard_init_linux.go:228: exec user process caused: no such file or directory

报错信息standard_init_linux.go:228: exec user process caused: no such file or directory排查点在Dockerfile中使用了启动脚本entrypoint.shENTRYPOINT ["entrypoint.sh"]但是由于启动脚本entrypoint.sh实在Windows环境下编写的,文件编码方式不是unix,所以无法执行。修复使用cmder或git bash工具用vim打开启动脚本entrypoint.sh

2022-05-04 10:09:30 6119

原创 MySQL学习笔记(3)——MySQL的索引

三、MySQL的索引1、MySQL索引的类型主要有哪些_?B-Tree索引、哈希索引、空间数据索引(R-Tree)、全文索引、其他索引(聚簇索引、覆盖索引等)。B-Tree索引:一般指按照B+树结构存储数据的索引。哈希索引:基于Hash表实现,只有精确匹配索引所有列才有效。空间数据索引:空间数据索引会从所有维度来索引数据,用作地理数据存储。全文索引:全文索引查找的是文中的关键词,而不是直接比较索引列的值。聚簇索引:聚簇索引不是单独的一种索引类型,而是一种数据存储方式。聚簇索引实现依赖于存储引

2022-04-17 16:41:49 670

原创 Mysql8数据库如何给用户授权

查看用户已有权限SHOW GRANTS FOR [用户名];使用root用户授予所有权限-- 授权GRANT ALL PRIVILEGES ON [数据库名].[表明] TO '[用户名]'@'[连接地址]' WITH GRANT OPTION;-- 刷新权限FLUSH PRIVILEGES;例如给numb用户的所有连接地址授权numb数据库所有表权限如下:GRANT ALL PRIVILEGES ON numb.* TO 'numb'@'%' WITH GRANT OPTION;

2022-04-17 09:29:58 7347

原创 排序算法专题——数组链表排序

排序算法专题数组排序快速排序每次partition之后,partition的节点位置已经定好,需要对[start, partition-1] 和[partition + 1, end]再排序如果start >= end后跳出循环,说明排序结束class Demo{ private int randomIndex(int start, int end) { int index = new Random().nextInt(end - start + 1);

2022-04-10 23:37:05 350

原创 Zookeeper入门(3)——Leader选举与分布式锁

@Configuration@ConfigurationProperties(prefix = "zookeeper")@Getter@Setter@ToStringpublic class ZkProp { @Value("address") private String address; @Value("maxRetries") private String maxRetries; @Value("sleepTimeMs") private

2022-04-08 22:01:11 1776

原创 Zookeeper入门(2)——Curator介绍与引入

二、Curator介绍与引入Apache Curator1、Curator是什么?Apache Curator是Apache ZooKeeper的Java/JVM客户端库,这是一个分布式协调服务。它包括一个高级API框架和实用程序,使使用Apache ZooKeeper变得更容易和更可靠。它还包括常见用例和扩展功能,如服务发现和Java 8异步DSL。2、Curator各个模块介绍GroupID/OrgArtifactID/NameDescriptionorg.apache

2022-04-08 21:58:25 1260

转载 IDEA运行报错:command line is too long. shorten command line

原因分析出现此问题的直接原因是:IDEA集成开发环境运行你的“源码”的时候(注意是源码基础上运行,并非打好的jar包哦),是通过命令(首行那个非常非常长的)来启动Java进程的。这个命令主要包含两大部分:vm/程序参数。也就是你看到的那些-XX -D等参数,这部分理论上可以无限长但实际上一般不会太长-classpath参数,它用于指定运行时jar包路径(因为jar包理论上是可以在任何地方的),这部分可能性就多了关键就在于-classpath参数,它可以非常长,你依赖的jar包越多此路径就越长;你的b

2022-04-07 19:39:27 21973

原创 zk报错:java.lang.IllegalStateException: Expected state [STARTED] was [LATENT]

zk报错:java.lang.IllegalStateException: Expected state [STARTED] was [LATENT]原因:客户端使用时没有start而直接调用了其他方法解决办法:public CuratorFramework getCuratorFramework() throws InterruptedException { RetryPolicy retryPolicy = new ExponentialBackoffRetry(Integer.parse

2022-04-02 18:33:04 6132

原创 java中的内部类与使用场景

java中的内部类java中的内部类成员内部类静态内部类局部内部类匿名内部类java中的内部类java内部类分为:成员内部类、静态内部类、局部内部类、匿名内部类。使用场景:成员内部类:不想被其他类公开使用的类,因为外部类只能定义为public或者缺省。静态内部类:一个类与另一个类关联性比较强,但是又可以不依赖外部类而独立存在。比如HashMap与Node局部内部类:局部内部类访问方法中定义的final类型的局部变量,局部类完全对外部隐藏,比较少用匿名内部类:适用于快速构造对象,lambda表

2022-04-01 22:48:51 5617 1

基于STM32F4系列的4个编码器4倍频的转速解析程序

基于STM32F4系列的4编码器4倍频转速解析程序,程序有效,需要根据自己的配置更改有问题欢迎提问。

2019-01-03

ROS机器人底层嵌入式程序STM32

ROS机器人底层嵌入式程序STM32ROS机器人底层嵌入式程序STM32

2018-04-12

基于STM32F4的霍尔编码器解析程序

基于STM32F4的霍尔编码器解析程序,可以做辨向和解析速度

2018-04-12

STM32F4开发指南-库函数版本_V1.1

STM32F4开发指南-库函数版本_V1.1(完整版)十分清晰可以下载

2018-04-10

C++程序设计教程(王珊珊)

C++程序设计教程(王珊珊)C++程序设计教程(王珊珊)

2018-04-10

ROS机器人程序设计

ROS机器人程序设计ROS机器人程序设计ROS机器人程序设计

2018-04-09

L1-Introduction to Reinforcement Learning

斯坦福强化学习 课件L1-Introduction to Reinforcement Learning

2018-04-09

模型预测控制(Model Predictive Control: Theory and Design)

模型预测控制(Model Predictive Control: Theory and Design)不是扫描版,很清晰

2018-04-08

空空如也

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

TA关注的人

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