Java开发中各种问题场景处理
常见的业务问题及处理方式
肖申克isRambo
一个在学习的码农
展开
-
函数式编程解决代码中百分之90的if else
函数式编程简化ifelse原创 2024-09-05 19:58:21 · 100 阅读 · 0 评论 -
编程式事务处理工具
【代码】编程式事务处理工具。原创 2024-07-30 15:52:37 · 217 阅读 · 0 评论 -
AOP+MySQL实现一个简历的日志收集工具
只开一个线程处理日志保存逻辑,防止流量洪峰压垮保存逻辑侧</p>* <p>拒绝策略采用直接拒绝而非交给主线程处理,则当前的监控日志只能承担1001的TPS原创 2024-03-17 15:13:59 · 304 阅读 · 0 评论 -
项目工具收录
在定义map的时候,**使用到了一个ImmutableMap的东西,这是Google Guava里的一个类,可生成一个不可变的Map对象,这就意味着,初始化定义后,后续就无法再put修改了,它的这个特性可以保证线程的安全。**一般用来替换if-else的map,我们就是要求在初始化定义后,就不会再允许修改了,因此,这个ImmutableMap生成的map,可以很好地帮我们实现这一点。,就像上面定义的链式写法,若是用传统的map定义,就每次都要map.put()、map.put()地赋值。原创 2024-03-17 13:54:36 · 304 阅读 · 0 评论 -
alibaba.excel导入导出监听器
alibaba.apachepoi导入监听原创 2023-02-15 11:02:14 · 445 阅读 · 1 评论 -
利用stream实现行政区域列表转tree树形结构
stream、peek、list转树形结构原创 2022-11-15 15:19:01 · 684 阅读 · 0 评论 -
开源聚合支付平台学习
聚合支付项目学习原创 2022-06-20 15:00:50 · 1981 阅读 · 0 评论 -
文件服务器搭建和多文件系统集成切换
文件服务器搭建和多文件系统切换原创 2022-05-20 17:32:25 · 537 阅读 · 0 评论 -
Java对接海康摄像头坑点总结
海康AI摄像头对接原创 2022-05-19 09:25:51 · 12701 阅读 · 15 评论 -
Smb协议实现内网共享目录文件处理及踩坑记录
Smb协议实现内网共享目录文件处理及踩坑记录一、业务场景公司内网环境,有部分比较古老的业务数据保存在一台windows服务器的共享目录里面。现在需要操作这个windows服务器的共享目录来上传下载删除文件。二、共享目录三、查了查资料,操作windows共享目录要通过smb协议。途中遇到一个问题,smb的协议版本问题导致无法连接windows共享目录,最后在GitHub上找到一个日本人对smb封装的依赖。原创 2022-03-30 17:21:32 · 1617 阅读 · 5 评论 -
策略+建造者模式解决ifelse判断实际应用场景
策略模式解决ifelse判断实际应用场景1、业务场景根据志愿者角色判断确定需要给志愿者账户的积分。2、上代码- 添加志愿者策略接口VolunteerStrategy添加志愿者策略接口VolunteerStrategy ,策略接口新增一个给志愿者添加积分或者处理其他业务的方法public interface VolunteerStrategy { /** * 不同志愿者角色的用户给与其个人和组织对应不同比例的积分 * @param volunteerParameter原创 2022-03-30 16:47:04 · 611 阅读 · 0 评论 -
文件上传-base64转码
一、背景1、当前对接政府平台,使用文件流MultipartFile格式传输文件不支持,因此改用base64将文件转化为base64字符形式,通过body传参,然后后台再通过base64将字符串转化为文件File。我们的文件系统使用的是fastdfs2、代码 /** * 上传并返回文件路径和文件名 * @param file 文件 * @return 文件路径 * @throws IOException 异常 */ @ApiOperatio原创 2021-09-23 17:06:02 · 838 阅读 · 0 评论 -
springboot+redisson实现分布式锁
一、单机版实现1、导入依赖<dependencies> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.4</version> </dependency>原创 2021-08-31 16:48:43 · 231 阅读 · 0 评论 -
微信APP支付错误:201商户订单号重复
一、临近上线的时候微信支付功能出现了一个商户订单号重复的问题。APP调用后端接口预下单,获取微信的预下单ID。后台接口请求微信支付的时候返回这个错误。日志已经打印如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/f817155c42ab471fae5664dc7a3833d1.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4原创 2021-08-24 11:22:07 · 2475 阅读 · 0 评论 -
springboot+redis实现定制化的单据号或流水号
一、业务场景公司各种业务都用到一个批次号、版本号、流水号等,这些号码都需要由一定的规律去生成,并且要实现自增的或者带特殊编号的功能。实现的方式有很多种,可以通过数据库表的自增来实现,也可以通过Redis的string类型的自增方法。现在就两种方式来对比一下。二、springboot+Redis实现自增1、导入Redis依赖 <dependencies> <dependency> <groupId>原创 2021-08-22 11:57:32 · 3024 阅读 · 0 评论 -
实战版uniapp集成微信支付功能-v2版本
背景:近期公司的app要做一个支付的功能。因此研究了一下微信的支付文档。做完了这个功能。光看文档还是踩了狠多坑。总结一下自己完成这个功能的步骤:主要是开发的步骤一、微信支付文档介绍1、微信支付开发者文档首页https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/index.shtml简单介绍一下申请账户的流程:首先要注册微信平台开发者账号,然后登录商户平台,注册商户商户账号接入微信,开通商户平台里面的支付功能。需要企业银行账户认证。关键在于原创 2021-08-12 17:12:05 · 1752 阅读 · 0 评论 -
java一键生成数据库文档的工具
今天分享一个好用的数据库文档生成工具。在项目中,我们经常需要整理数据库表结构文档。一般情况下,我们都是手动整理数据库表结构文档,当表结构有变动的时候,自己手动进行维护。数据库表少的时候还好,数据库表多了之后,手动整理和维护数据库表结构文档简直不要太麻烦,而且,还非常容易出错!有没有什么好用的工具帮助我们自动生成数据库表结构文档呢?当然有!Github 上就有一位朋友开源了一款数据库表结构文档自动生成工具—— screw 。项目地址:https://github.com/pingfangushi/转载 2021-08-06 09:21:29 · 307 阅读 · 0 评论 -
Java实现app版本排序和版本比较
一、app版本排序1、从数据库查询app数据CREATE TABLE `app` ( `id` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` datetime DEFAULT NULL COMMENT '创建时间', `modified_at` datetime DEFAULT NULL COMMENT '更新时间', `created_by` char(32) CHARA原创 2021-07-28 13:58:14 · 883 阅读 · 0 评论 -
连表查询(group by)导致SQL报错的原因
报错代码 Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql : SELECT COUNT(1) FROM ( SELECT ap.id AS activeId, ap.number, ap.`name` activity_plan_name, ap.organizat原创 2021-07-27 17:03:08 · 1298 阅读 · 0 评论 -
springboot整合fastdfs上传下载文件代码
一、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <scope>test</scope> </dependency> &原创 2021-07-27 16:42:47 · 356 阅读 · 0 评论 -
Redis实现队列监听器订阅数据
1、创建redis监听器/** * @author rambo * Redis队列监听器 */@Configurationpublic class RedisMessageListener { /** * 创建连接工厂 * @param connectionFactory * @param listenerAdapter * @return */ @Bean public RedisMessageListenerCont原创 2021-07-27 16:30:10 · 2721 阅读 · 2 评论 -
调用高德API,通过输入的地址,如省份、市、区获取经纬度 ,通过输入的经纬度,获取区域详情
一、pom<?xml version="1.0" encoding="UTF-8"?><projectxmlns=“http://maven.apache.org/POM/4.0.0”xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi:schemaLocation=“http://maven.apache.or...原创 2019-12-12 20:13:33 · 1493 阅读 · 0 评论 -
全国行政区域数据及导入及接口实现及四级联动
一、先将SQL导入数据库https://download.csdn.net/download/qq_45614471/20419356https://download.csdn.net/download/qq_45614471/20419356二、接口全量查询所有四级父子行政区域数据1、实体类/** * 行政区域 VO * @author rambo */@ApiModel(value = "行政区域 VO", description = "行政区域 VO")@Getter@Sette原创 2021-07-22 11:16:15 · 1075 阅读 · 0 评论 -
Mybatis foreach 批量插入
一、业务:根据角色关联菜单RelationDto@Data@AllArgsConstructor@NoArgsConstructor@ApiModel(value = GlobalConstant.API_MODEL_IN + “-关联信息”)public class RelationDto implements Serializable {private static final long serialVersionUID = 1890569379952399719L;@NotNull(原创 2020-07-14 20:02:50 · 389 阅读 · 0 评论 -
定时任务框架
学习此博客:https://blog.csdn.net/noaman_wgs/article/details/80984873原创 2020-07-02 15:20:11 · 136 阅读 · 0 评论 -
代码生成器--idea插件EasyCode
一、Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。二、安装及使用建议大家在安装一个插件,叫做Lombok。Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有get...原创 2020-04-02 17:18:12 · 565 阅读 · 0 评论 -
java前后端分离之懒加载树形结构
一、图示:二、这里是前后端分离,懒加载需要前端配合,后端根据主节点的id或者父id来查询下一级并返回是否有子节点的标识,前端根据标识是否判断发送请求@RestController@RequestMapping("sysSellarea")public class SysSellareaController{ @ApiOperation(value = "懒加载查找所有销售区域")...原创 2020-04-02 13:02:17 · 2388 阅读 · 0 评论 -
根据树形下拉框展示右侧列表场景
一、场景图示:二、业务拆分和编程思路这里业务主要分为两大部分,一个左边树形结构,另一个是根据左边树形结构展示右侧列表。左边树形结构:全国是最大的主干,主干下面有主节点,每一个主节点下面分为子节点。表的设计如下:这里只需要关注parent_id,主节点的id=子节点的parent_id;树形结构代码展示:两种方式,一种是一次性加载,另一种是通过主干的id(子节点的父id),查当前节点下的...原创 2020-04-02 11:17:30 · 606 阅读 · 0 评论 -
Java中的serialVersionUID
一、解释:Java的序列化的机制通过判断serialVersionUID来验证版本的一致性。在反序列化的时候与本地的类的serialVersionUID进行比较,一致则可以进行反序列化,不一致则会抛出异常InvalidCastException。二、运用eg:@ApiModel(value = "行政区域表")@Table(name = "sys_district")@Data@Ac...原创 2020-04-01 16:42:05 · 664 阅读 · 0 评论 -
mysql函数实现数据脱敏,隐藏业务字符-函数的使用
最近做了一个功能,是管理用户账户对接支付的一个模块,里面有一个是做提款账户的管理的功能,这个功能里面涉及到用户的银行卡号和手机号,根据需求为了保密性这里的银行卡号和手机号是不能在页面上展示的,需要后端来解决这个问题。因此我准备了两套方案来解决这个问题。一、通过mysql的concat、left、right系统函数:先看下页面效果:所以这里只需要在MySQL中操作即可获取到加密后的数据:ac...原创 2020-01-16 14:37:10 · 1108 阅读 · 0 评论 -
阿里Java代码检测工具在idea中的使用安装(Java开发非常实用的工具)
阿里在2017年10月份的云栖大会上发布了基于java开发手册的java扫描插件,主要功能是扫描出java代码潜在的代码隐患,提升代码质量!将不符合规约的代码显示出来,还实现了一键bug修复的功能,支持idea和eclipse。一、安装:1、打开idea,点击file–>setting—>搜索plugins—>点击plugins后面出现右面的插件搜索栏—>输入aliba...原创 2020-01-03 14:06:30 · 2270 阅读 · 0 评论 -
springboot中使用缓存
给大家介绍一片写的不错的博客。下面引入地址:https://www.jianshu.com/p/e154adc2c3c8原创 2020-01-02 20:53:36 · 124 阅读 · 0 评论 -
利用map集合模拟java树形结构
import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import org.apache.commons.collections.map.HashedMap;import java.util.ArrayList;impor...原创 2020-01-02 20:44:20 · 849 阅读 · 1 评论 -
java后台删除当前节点及其子节点-递归
一、表设计二、entityimport com.fasterxml.jackson.annotation.JsonIgnore;import com.joyoung.cloud.security.common.entity.BaseEntity;import io.swagger.annotations.ApiModel;import io.swagger.annotations.Api...原创 2019-12-27 21:14:25 · 2533 阅读 · 8 评论 -
java开发之树形结构全加载
最近在博客上发表了一偏懒加载的文章,有位博友加我咨询了,说是业务需求,需要通过树形结构展示所有的数据。今天从数据库设计,到三层的代码,讲解一下我在项目开发中是怎么完成这个业务的。(之前一偏懒加载的文章,讲的是如何通过表的设计和实体类的管理,在通过SQL实现列表数据,而后前端根据是否有下一级子节点hasChildren,确定是否再向下一级加载)。一、数据库设计:注意这里主要的几个字段,id,p...原创 2019-12-27 20:28:24 · 665 阅读 · 0 评论 -
自定义语言解析器,并交给spring管理
自定义语言解析器import org.springframework.util.StringUtils;import org.springframework.web.servlet.LocaleResolver;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRespons...原创 2019-12-23 17:15:54 · 329 阅读 · 0 评论 -
Java开发空值针异常的分析及处理--java.lang.nullpointerexception
一、空指针异常的介绍------NullPointerException 是 runtimeexception运行时异常的子类,因此,Javac 编译器并不会强迫你使用 try-catch 代码块来捕获该异常。------在Java中,null 作为一个特殊值被对象引用,用来表示该对象当前指向的是一块未知内存数据。然而NullPointerException这个异常,则是程序在使用或访问一个对...原创 2019-12-17 21:03:36 · 863 阅读 · 0 评论 -
前后端分离----定义响应格式化数据
一、统一响应结果实体类:import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import lombok.experimental.Accessors;import java.io.Serializable;/**@Class...原创 2019-12-12 20:26:32 · 1029 阅读 · 0 评论 -
java后台树形结构展示---全加载
一、数据库设计二、实体类:entityimport com.joyoung.cloud.security.common.validatedGroup.Add;import com.joyoung.cloud.security.common.validatedGroup.Modify;import io.swagger.annotations.ApiModel;import io.swa...原创 2019-12-12 20:23:58 · 835 阅读 · 0 评论