- 博客(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代码示例展示了如何实现观察者模式。首先,定义了一个Subject接口,包含注册、移除和通知观察者的方法。接着,WeatherSubject类实现了该接口,并维护了一个观察者列表,当天气数据变化时通知所有观察者。然后,定义了Observer接口及其实现类TemperatureObserver和HumidityObserver,分别用于观察温度和湿度变化。最后,通过测试类ObserverMain演示了观察者模式的工作流程,展示了
2025-05-09 09:43:13
153
原创 哲学家就餐问题(看完不会你打我)——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
原创 使用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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅