自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (6)
  • 收藏
  • 关注

原创 模糊PID控制算法的C++实现

模糊PID的C++实现方法

2017-10-14 20:17:53 39840 78

原创 模糊控制算法的C++实现

之前写过一篇关于使用样本数据获取模糊规则的博文,原文 的地址是:http://blog.csdn.net/shuoyueqishilove/article/details/71908410,大家可以参考,本篇文章适合对模糊控制算法有一定了解的人阅读,给大家提供一种如何用C++实现模糊控制的方法,仅供参考。

2017-07-01 10:26:35 22164 23

原创 Jetson Nano B01安装ubuntu20.04-LTS

jetson nano官方最高支持的ubuntu版本是18.04,这版本有点低,不支持ROS2 Foxy安装,ROS2 Foxy需要ubuntu版本为20.04及以上,支持Jetson Nano的ubuntu20.04-LTS镜像如下:Qengineering/Jetson-Nano-Ubuntu-20-image: Jetson Nano with Ubuntu 20.04 image下载镜像之后按照如下链接进行刷机:https://blog.csdn.net/IvoryDai/article/detai

2024-01-06 10:43:16 730

原创 Ubuntu20.04安装ROS2 Foxy

如果这一步有问题,参考:https://blog.searchinfogo.com/2021/01/27/github-connection-refused/时访问packages.ros.org无法成功,主要的原因是没有外网,而自己整一个外网代理又非常麻烦,所以一般是通过设置国内源来实现。安装ROS2的教程在网上很多,但是我操作之后都有问题,大部分的问题是在。默认情况下,每次打开新shell终端时都必source安装文件,执行。替换为国内的镜像源的域名,这里我替换为清华大学源域名。启动listener。

2024-01-06 10:35:26 793

转载 BeanFactory和FactoryBean的区别

但少数情况下,容器中的 bean 本身就是工厂,作用是产生其他 bean 实例。即一个Bean A如果实现了FactoryBean接口,那么A就变成了一个工厂,根据A的名称获取到的实际上是工厂调用getObject()返回的对象,而不是A本身,如果要获取工厂A自身的实例,那么需要在名称前面加上’&'符号。BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()、containsBean()等管理Bean的通用方法。

2023-10-23 19:48:28 124

原创 Sharding-JDBC分库分表-分布式事务-5

分库分表必然会涉及到分布式事务的问题,关于这方面,sharding JDBC为用户提供了两种分布式事务解决方案:XA事务和BASE事务,这两个的区别是:XA事务,追求强一致性,锁定的资源范围比较大,是个并发量要求不高、事务锁定时间短的场景;而BASE事务是一种柔性事务,它追求的是最终一致性,对资源锁定范围小,适合高并发的场景。sharding JDBC分布式事务介绍。

2023-09-12 22:46:51 367

原创 Sharding-JDBC分库分表-自定义分片算法-4

自定义分片算法时通过配置分片策略类型和算法类名,实现自定义扩展。允许向算法类内传入额外的自定义属性,传入的属性可以通过属性名为props的类实例取出。自定义分片算法有三种类型标准分片算法复杂分片算法hint分片算法算法分类需要实现接口说明标准支持单个分片键,需要实现精确和范围分片接口复杂支持多个分片键,但是分片键数据类型需要一样hint没有分片键,分片值通过hint注入而不是SQL。

2023-09-10 17:41:43 620

原创 Sharding-JDBC分库分表-自动配置与分片规则加载原理-3

分片规则、审计规则、key生成规则都是通过SPI的方式加载,自动配置类ShardingSphereAutoConfiguration中创建ShardingSphereDataSource的时候,会加载配置的分片规则,创建核心配置类ShardingRule,在ShardingRule的创建中会通过SPI的方式加载分片规则。其中,创建数据源bean时会根据不同的模式创建不同的bean,本地模式直接从配置文件中加载,配置中心模式就从配置中心加载。

2023-09-03 18:44:46 488

原创 Sharding-JDBC分库分表-自定义分布式ID生成算法-2

Sharding JDBC自定义分布式ID生成算法通过SPI方式提供扩展能力,算法需要实现接口KeyGenerateAlgorithm

2023-09-02 22:47:53 489

原创 Sharding-JDBC分库分表-入门-1

Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强官网:https://shardingsphere.apache.org/index_zh.html官方样例:https://shardingsphere.apache.org/blog/cn/material/oct_12_4_updates_and_faq_your_1_minute_quick_start_guide_to_shardingsphere/

2023-08-29 23:38:44 161

原创 HTTPS安全连接的建立过程

https安全连接的建立过程

2023-06-07 10:17:11 1101

原创 异常信息记录入库

全局异常异步记录到数据库

2023-02-25 18:05:20 955 1

原创 Git回滚代码到某个tag

开发中总会有人不小心将代码提交到错误的分支上,比如应该提到dev分支的代码提交到了master分支,可以使用git回滚到tag的方法进行回滚。2、寻找tag提交ID显示如下结果commit f2acd7b8e58fe053fbf4feadc8208a07b47d7d4d (tag: 22.5.0.3, tag: 22.5.0.2, tag: 22.5.0.1)commit后面就是提交ID4、推送到源仓库注意,这需要开启仓库的force push权限

2022-12-07 11:25:47 3392

原创 AOP核心

面相关切面编程,利用AOP可以对业务的各个部分进行隔离,使得业务逻辑各部分之间耦合度降低,提高开发效率。基于AspectJ实现AOP操作有两种方式实现:XML配置和使用注解。

2022-10-17 23:31:48 434

原创 MyBatis的Mapper接口自动注册原理

MapperScan注解提供了一种使用Java配置的方式来注入mapper接口,功能与在xml文件中通过MapperScannerRegistrar配置MapperScannerConfigurer是一样的,因为这个注解使用了@Import注解导入了MapperScannerRegistrar。如上所示的Mybatis的mapper接口,在定义之后,可以直接在service实现类中使用,那么这些Mapper是如何被加载的呢?整个Mapper的加载过程可以归纳为。注册Mapper接口。

2022-10-17 15:51:21 1857

原创 Spring IOC核心知识

控制反转(IOC: Inversion Of Control),把对象的创建和对象之间的调用过程都交给Spring管理,从而降低耦合度。

2022-10-10 20:32:40 905

原创 SpringBoot配置自动加载机制

自动配置加载机制

2022-10-10 14:53:26 2131 1

原创 自定义注解实现分布式限流

自定义注解实现分布式限流实践

2022-08-27 12:02:55 446

原创 Fiddler拦截HTTPS请求

fiddler拦截浏览器的HTTPS请求

2022-07-30 10:34:00 1130

原创 Springboot中使用LUA脚本进行Redis操作

Springboot中使用LUA脚本进行Redis操作

2022-07-27 19:56:54 1759

原创 电商数据模型设计

电商数据模型设计

2022-07-27 19:42:50 1248

原创 数组的字典排序

数组的字典排序

2022-06-09 12:00:17 1062

原创 Spring事务执行的原理(@Transactional)

事务执行的原理(@Transactional)Spring框架默认使用基于CGLIB的AOP动态代理实现,根据前面的CGLIB动态代理原理的分析(Spring动态代理原理)。可以发现,应用启动的时候,在@EnableTransactionManagement注解的作用下会自动生成代理对象CglibAopProxy,并会为方法设置对应的拦截器链;当调用带有@Transactional注解的方法时,DynamicAdvisedInterceptor#intercept能够获取到该方法的拦截器链,由于方法带有事

2022-05-12 16:08:09 917

原创 Spring的动态代理原理

Spring动态代理原理Spring动态代理有两种:CGLIB动态代理和JDK动态代理。JDK动态代理可以代理接口,不能代理没有实现接口的类;而CGLIB通过字节码技术可以动态生成被代理类的子类,从而可以代理没有实现接口的类;但是不能代理非public和final的方法,因为子类不可见。Spring框架中使用DefaultAopProxyFactory来确定使用CGLIB或者JDK的动态代理一般满足以下条件之一 就会进行CGLIB动态代理:optimize标志位被设定proxyTargetCl

2022-05-09 21:40:43 1952

原创 Spring事务原理之关键注解

Spring事务Spring事务通过AOP切面来增强目标方法的调用,控制事务的开启、提交和回滚。主要的接口有:TransactionManager:Spring事务管理器实现的标志接口,对标准事务和反应式事务都可用;TransactionStatus:代表事务的状态,事务代码可以使用它来获取事务的状态,也可以在失败的时候,编码式的请求一个回滚;他还包含了SavepointManager接口,用来访问保存点管理信息;注意只有底层事务管理器支持的时候,才能使用保存点管理器。TransactionDef

2022-05-07 20:59:46 544

原创 Feign使用和原理的总结

Feign总结使用引入依赖 <properties> <java.version>1.8</java.version> <spring-cloud.version>2021.0.1</spring-cloud.version> </properties> <dependencies> <dependency> <g

2022-04-22 17:45:30 2013

原创 SpringBoot启动原理

启动原理@SpringBootApplicationpublic class Application extends SpringBootServletInitializer { public static void main(String[] args) { // 新建SpringApplication SpringApplication app = new SpringApplication(Application.class); // 执行r

2022-04-19 19:19:28 394

原创 Ribbon负载均衡的原理

Ribbon依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.12.RELEASE</version> <relativePath/> <!--

2022-04-06 23:59:37 949

原创 基于模板模式与多线程的高效集成数据处理

高效处理集成数据从外部系统集成的数据一般需要经过一定的处理才能写入正式表,常见的实现需要满足下面几点:定时任务触发集成数据后处理防止定时任务频繁触发导致数据错乱处理数据要足够快大批量数据同时处理不能出现OOM定时任务平台回调反馈结果以上几点同时满足,集成数据才能准确。但是经过实践发现,团队写的代码很多都是重复的,可以考虑使用模板方法模式对集成数据进行优化。1、算法结构如图,抽象模板类AbstractIntegrateTemplate中的integrate方法定义了算法执行的

2022-03-22 14:40:04 602

原创 责任链模式

设计模式-责任链模式责任链模式(Chain of Responsibility Pattern):避免请求的发送者与接收者耦合,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。算法结构如上图,AbstractHandler定义了抽象方法handle(),具体的handle()业务逻辑交给子类HandlerA、HandlerB、HandlerC去实现,在AbstractHandler中的next字段可以将具体的Han

2022-03-12 18:20:52 688

原创 观察者模式

观察者模式:一个对象的状态发生改变,与此有对应关系的对象将对此作出相应的动作观察者模式:有点类似于微信朋友圈的模式,当你发布完一个朋友圈动态,你的联系人会看到你新发布的文章,这里的关键是你有一个联系人列表,至少你知道联系人的ID。订阅模式:订阅者跟发布者是弱关联模式,甚至发布者不需要知道订阅者的存在,这跟观察者模式有个本质的区别。订阅模式的耦合性较低,但是通信的质量较差,也不需确保通信的质量。监听器模式:它其实是两个观察者模式的实现,用于解耦观察者模式中的观察者和被观察者,相当于在中间加了个传话的人,

2022-03-10 23:06:17 210

转载 简单工厂-工厂方法-抽象工厂模式

工厂模式的本质就是对获取对象过程的抽象工厂模式主要可以分为三大类:简单工厂模式工厂方法模式抽象工程模式简单工厂模式工厂模式主要是用于对实现逻辑的封装,并且通过对公共的接口提供对象的实列画的服务,在我添加新的类时不需大动干戈,只要修改一点点就好。举个例子我之前所在的电商业务怎么创建创建商品的:在这个简单工厂里面,如果要创建活动商品1 以及活动商品2,我们要创建商品的时候只要调用简单工厂里面的创建商品方法,根据类型创建出不同的商品然后实列化返回就可以了。简单工厂几种实现方式:...

2022-03-09 23:44:26 410

原创 模板方法模式

模板方法模式由模板定义算法的框架,将共性的部分放在模板中实现,个性化的部分预留方法出来,交给子类去实现可以参考大神的博客:模板方法模式

2022-03-09 11:55:53 206

原创 策略模式使用

策略模式策略模式就是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换;它可以替换继承关系,避免使用多重条件转移语句典型应用场景根据不同的类型选择不同的计费策略、处理机制参考:https://blog.csdn.net/u010247622/article/details/106220318/容错恢复机制,当程序出现错误时,使用备选方案参考:https://www.cnblogs.com/LoveShare/p/10953940.html算法结构如图,该算法,一般先定义

2022-03-08 16:06:02 316

原创 集成Mybatis-Plus

集成Mybatis-Plus引入依赖 <!-- mybatis-plus依赖 --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version></dependency> <!-- a

2022-03-07 19:15:11 885

原创 Redisson原理

1、场景假设场景,多个线程并发(模拟并发)对库存数量进行扣减,现将库存预置在redis中,然后开启多线程对库存进行扣减private static final String PRODUCT = "MoonCake";private static final String PRODUCT_STOCK = PRODUCT + "Stock";@Autowiredprivate RedissonClient redissonClient;@Autowiredprivate RedisTempla

2022-01-12 14:53:57 1146

原创 程序员必备原理

1 Redis1.1Redis中的hash扩容原理采用渐进式的rehash扩容rehash原理1.2 Redis集群数据分片Redis采用Hash槽来进行数据分片,Redis Cluster包含了16384个哈希槽,每个Key通过计算后都会落在具体一个槽位上,而这个槽位是属于哪个存储节点的,则由用户自己定义分配Hash槽原理1.3 Redis数据复制原理主从,哨兵、集群数据赋值原理.........

2022-01-06 11:44:42 3834

原创 动态代理原理和实例

动态代理1、使用场景通过代理对目标类方法进行增强;使用RPC框架的时,框架本身并不能提前知道各个业务方要调用哪些接口的哪些方法 。这时,通过动态代理的方式建立一个中间人给客户端使用,方便框架搭建逻辑, 可以使客户端代码和框架解耦;Spring的AOP机制采用动态代理的机制来实现切面编程。2、JDK和CGLIB动态代理的区别CGLIB动态代理是JDK动态代理的补充,JDK动态代理只能代理具有接口的实现类,不能代理没有接口的Java类中的方法,CGLIB既可以代理接口,亦可以代理普通JAVA类

2022-01-03 15:21:29 183

原创 分布式事务解决方案

1 DTP5.2 2PC模型整个事务分为Prepare和Commit阶段:Prepare->Commit事务执行成功时:Prepare阶段Commit阶段事务执行失败时:Prepare阶段Commit阶段两阶段模型的问题:同步阻塞问题:事务在执行过程中,所有参与事务的节点都会对其占用的公共资源加锁,导致其他访问公共资源的进程或线程阻塞单点故障问题:如果事务管理器发生故障,则资源管理器会一致阻塞数据不一致问题:如果在Commit阶段,由于网络或部分资源管理器发生故障,

2022-01-03 14:59:32 459

原创 spring事务支持

spring事务spring基于AOP实现了事务管理的功能。Spring启动时会创建相关的bean对象,如果扫描到@Transactional注解的类或方法,会根据@Transactional注解相关的参数进行配置注入,在代理对象中会处理相应的事务,对事务进行管理。在默认情况下,方法抛出RuntimeException时回滚事务,也可以手动指定事务回滚的异常类型,如:@Transactional(rollbackFor=Exception.class)spring事务的三大核心接口:Platf

2022-01-03 14:50:06 236

ETAS软件安装及操作说明

ETAS硬件再环软件安装步骤和操作说明,实验室师兄呕心沥血整理,包括如何使用,是小白快速上手的神器

2018-06-06

模糊控制器 C++实现

本模糊控制器采用C++语言是实现,完全可以转化为C代码使用。本控制器对于想要实现模糊控制落地的朋友来说有一定的借鉴意义,但是具体控制对象的模糊规则和隶属度函数制定有所区别,不能一概而论。

2018-05-24

自适应模糊PID代码 C++实现

基于C++ 的模糊PID控制代码,参考许多论文制定的PID参数调整模糊规则,代码对于想了解这方面的人有一定的借鉴意义。但是不保证什么控制对象都能用,具体对象具体设计。

2018-05-24

mini数学矩阵运算库 C语言

本数学矩阵运算库采用C语言编写,可以实现基本的数学矩阵运算,如加减,相乘,求行列式的值,求矩阵的逆等,使用方便。

2018-05-24

基于英飞凌XC2000的电动车用PMSM矢量控制程序,带CAN模块通讯

PMSM矢量控制程序,CAN通讯

2017-04-04

proteus仿真步进电机

利用51单片机实现步进电机的控制,包括实时正反转,加减速控制

2016-04-22

空空如也

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

TA关注的人

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