自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Springboot 使用MapStruct 快速入门

MapStruct是一个高效的Java Bean映射工具,通过编译时代码生成实现类型安全的属性转换。本文介绍了MapStruct的核心优势:高性能、类型安全、开发效率和生态友好。示例展示了如何集成MapStruct:1)添加Maven依赖;2)定义VO/DO实体类;3)使用@Mapper和@Mapping注解创建转换接口;4)在Service层调用转换器。MapStruct自动生成实现类处理不同名称属性的映射(如name→username),大幅减少样板代码,提升开发效率和可维护性。

2025-10-19 09:40:51 288

原创 Springboot多数据源实践

本文介绍了使用baomidou动态多数据源实现多数据库操作的方法。首先引入相关依赖,包括spring-boot-starter-web、mysql-connector-j和dynamic-datasource-spring-boot3-starter。然后通过Docker启动两个MySQL容器(3306和3307端口),分别创建数据库和测试表。在配置文件中设置主从数据源连接信息,通过@DS注解在Service层动态切换数据源。测试结果表明,系统成功从不同数据库实例中查询出了对应数据,验证了动态数据源切换功能

2025-10-13 10:25:09 250

原创 SpringBoot-基于Spring Retry优雅重试

SpringRetry提供优雅的重试机制,通过注解配置即可实现自动重试。在pom中引入spring-retry和aspectjweaver依赖后,使用@Retryable注解指定异常类型、最大重试次数和退避策略(如指数间隔),@Recover注解处理重试失败后的补偿逻辑。示例展示了库存扣减场景:当乐观锁冲突时自动重试3次,间隔时间100ms递增;重试失败后执行告警和记录补偿操作。这种声明式方式简化了重试代码编写,提高了系统健壮性。

2025-10-12 17:26:20 197

原创 安卓屏 读取和发送 CAN 数据

本文介绍了在安卓屏RK3511C上收发CAN数据的实现方法。首先需准备candev.jar开发包并将其导入项目,修改build.gradle文件配置依赖。核心通过CanService类实现CAN通信,包括初始化(设置500k波特率)、读取和发送三个线程。读取线程解析CAN帧ID和数据,发送线程按协议封装数据帧。文中提供了关键代码示例,并指出详细用法可参考《CAN JAVA开发说明.pdf》。注意需使用带CAN口的安卓屏调试,避免缺失.so文件问题。

2025-07-07 16:31:28 527

原创 快速排序-JAVA实现

【代码】快速排序-JAVA实现。

2025-06-23 11:00:31 122

原创 观察者模式

观察者模式是一种行为设计模式,允许对象在状态变化时通知其他依赖对象。本文通过Java代码示例展示了如何实现观察者模式。首先,定义了一个Subject接口,包含注册、移除和通知观察者的方法。接着,WeatherSubject类实现了该接口,并维护了一个观察者列表,当天气数据变化时通知所有观察者。然后,定义了Observer接口及其实现类TemperatureObserver和HumidityObserver,分别用于观察温度和湿度变化。最后,通过测试类ObserverMain演示了观察者模式的工作流程,展示了

2025-05-09 09:43:13 153

原创 SpringBoot整合Redis

");@Overridetry {@Override去掉类型信息的代码是。

2025-02-27 17:38:08 366

原创 基于Maven的Kotlin-Java混合开发

基于Maven的Kotlin-Java混合开发

2024-11-20 10:25:32 812 2

原创 哲学家就餐问题(看完不会你打我)——java实现

定义筷子类定义哲学家类测试使用jconsole检测死锁,发现死锁苏格拉底等待柏拉图,柏拉图等待亚里士多德 ,。。。。

2024-03-07 16:17:09 1207

原创 装饰器模式-java实现

装饰器模式也被称为包装模式,是指在不改变原有对象的基础上,不直接依赖继承关系,提供比继承更有弹性的替代方案,从而达到扩展对象的功能,装饰器的核心是功能扩展。

2024-03-07 09:29:39 889

原创 策略模式-java实现

以支付为例,用户在支付商品时,可以有多种支付方式,如支付宝,微信,现金。当支付方式增多,支付策略复杂化,我们就要考虑使用策略模式,这样可以避免if else 成堆出现,既不美观也很容易出错。通过枚举的ordinal 我们知道AlPay是0,WxPay是1,CashPay是2,我们就建立了一对一关系,只要给我数字这里就可以通过getPayTypeEnum()返回对应的枚举。通过Map的get方法提供Bean的名字,获取对应的支付现实类。实现支付接口(不同的支付方式有不同的策略)接收支付类型和支付金额。

2024-03-01 09:59:47 1139 1

原创 SpringBoot打日志

springboot 分片日志

2024-01-29 11:07:45 1296 1

原创 使用Rust实现简单的CURD 通过Actix-web & Sqlx 现实

使用Rust实现简单的CURD Actix-web & Sqlx

2024-01-22 15:35:25 1410 1

原创 springboot集成redis,并可以切换redis库

一、maven坐标我的环境是 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency>

2021-12-30 14:20:17 1632

原创 springboot 配置mybatis 多数据源

一、环境和目录结构1.1、环境springboot+mysql+mybatis<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>mysql</

2021-12-29 23:47:21 490

原创 引用css打包webpack时遇到的问题及解决方法

安装css-loadernpm install --save-dev css-loader安装 style-loadernpm install style-loader --save-dev安装完成后发现报错去package.中发现css-loader和style-loader版本过高手动更改版本,改为如下图所示执行npm-install 和npm -devnpm-install执行npm run build这时可以运行出css样...

2021-05-04 21:25:37 221

原创 HbuilderX运行终端提示没有权限

Hbuilder在运行终端时提示禁止运行脚本我在运行webpack 时提示解决方法①以管理员身份运行powershell②输入set-ExecutionPolicy RemoteSigned键盘输入 Y 更改设置如果还不行③输入Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 进行修改同样输入 Y 更改设置可以用Get-ExecutionPolicy -List查看...

2021-05-04 17:06:33 2737

candev.jar 和 java can API

JAVA 收发 CAN 数据

2025-07-07

空空如也

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

TA关注的人

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