博客园 - guodaxia
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=6642
2022-12-06T10:09:23Z
guodaxia
https://www.cnblogs.com/aigeileshei/
feed.cnblogs.com
https://www.cnblogs.com/aigeileshei/p/16956719.html
离线下载功能设计 - guodaxia
1、功能梳理 excel导出全部异步进行,生成一个下载清单即可 下载清单默认状态初始化,映射地址默认无法访问。异步完成文件服务器生成到映射位置,下载清单为已完成状态 已完成清单在30分钟后会自动销毁,清单状态变更为已失效 用户可以点击我的下载得到清单列表,已完成清单提供下载按钮供下载。所有清单提供删
2022-12-06T10:09:00Z
2022-12-06T10:09:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】1、功能梳理 excel导出全部异步进行,生成一个下载清单即可 下载清单默认状态初始化,映射地址默认无法访问。异步完成文件服务器生成到映射位置,下载清单为已完成状态 已完成清单在30分钟后会自动销毁,清单状态变更为已失效 用户可以点击我的下载得到清单列表,已完成清单提供下载按钮供下载。所有清单提供删 <a href="https://www.cnblogs.com/aigeileshei/p/16956719.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/16955990.html
客户生命周期流程设计 - guodaxia
需求: 记录一个客户从注册到注销经历的各个生命周期节点,给与查询展示 设计: 1、生命周期节点分为以下几个流程:注册、授信、资料获取...(先开发部分流程,剩余用...表示)流程只有特定流程有顺序,有些流程是交叉进行的,比如授信和资料获取 2、生命周期节点主要信息是:描述、所属流程、失败原因、触发时
2022-12-06T09:34:00Z
2022-12-06T09:34:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】需求: 记录一个客户从注册到注销经历的各个生命周期节点,给与查询展示 设计: 1、生命周期节点分为以下几个流程:注册、授信、资料获取...(先开发部分流程,剩余用...表示)流程只有特定流程有顺序,有些流程是交叉进行的,比如授信和资料获取 2、生命周期节点主要信息是:描述、所属流程、失败原因、触发时 <a href="https://www.cnblogs.com/aigeileshei/p/16955990.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/16955633.html
数据中台预警监控功能简要设计 - guodaxia
需求: 针对产品主要流程中一些异常情况, 数据中台接收各个业务系统,其他中台系统发送的异常事件。 满足触发阀值之后进行短信告警功能。 设计: 1、配置监控器: 监控事件、监控范围、触发阀值、对应负责人(配置负责人) 监控器监控的范围可以是全项目单个事件,也可以是指定项目的单个事件 2、某个事件连续触
2022-12-06T08:12:00Z
2022-12-06T08:12:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】需求: 针对产品主要流程中一些异常情况, 数据中台接收各个业务系统,其他中台系统发送的异常事件。 满足触发阀值之后进行短信告警功能。 设计: 1、配置监控器: 监控事件、监控范围、触发阀值、对应负责人(配置负责人) 监控器监控的范围可以是全项目单个事件,也可以是指定项目的单个事件 2、某个事件连续触 <a href="https://www.cnblogs.com/aigeileshei/p/16955633.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/16955432.html
left join 限制条件放置位置导致的异常问题(易犯) - guodaxia
sql 1: SELECT t1.id, t1.apply_no, t1.operator, t1.operate_result, t1.operate_task, t1.pipeline_id, t1.credit_amt, t1.audit_opinion, t1.add_doc_reason,
2022-12-06T07:26:00Z
2022-12-06T07:26:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】sql 1: SELECT t1.id, t1.apply_no, t1.operator, t1.operate_result, t1.operate_task, t1.pipeline_id, t1.credit_amt, t1.audit_opinion, t1.add_doc_reason, <a href="https://www.cnblogs.com/aigeileshei/p/16955432.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/14849541.html
springboot结合baomidou dynamic-datasourc组件实现多数据源 - guodaxia
三方组件pom: <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>2.5.4</version> </depen
2021-06-04T06:49:00Z
2021-06-04T06:49:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】三方组件pom: <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>2.5.4</version> </depen <a href="https://www.cnblogs.com/aigeileshei/p/14849541.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/14844601.html
SQL联表进行更新与删除(使用联表条件) - guodaxia
联表删除 语法: delete t1.* from t1, t2 where condition 案例: 由于程序bug,导致对账单生成了重复的对账单条目数据,现在需要删除掉重复数据。 如何判断重复:对账条目表的对账单号相同、来源info_no相同的多条记录视为一条有效记录,存在重复。 sql: D
2021-06-03T03:46:00Z
2021-06-03T03:46:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】联表删除 语法: delete t1.* from t1, t2 where condition 案例: 由于程序bug,导致对账单生成了重复的对账单条目数据,现在需要删除掉重复数据。 如何判断重复:对账条目表的对账单号相同、来源info_no相同的多条记录视为一条有效记录,存在重复。 sql: D <a href="https://www.cnblogs.com/aigeileshei/p/14844601.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/14844012.html
springboot 使用secheduled任务调度 - guodaxia
本来没啥好记的,但因为自己在使用过程中搜到cron表达式写错的影响,自己代码有bug的影响,错误以为scheduled没有生效,徒劳浪费时间。因此,在这里将类似配置都记载下来。 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmln
2021-06-03T02:00:00Z
2021-06-03T02:00:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】本来没啥好记的,但因为自己在使用过程中搜到cron表达式写错的影响,自己代码有bug的影响,错误以为scheduled没有生效,徒劳浪费时间。因此,在这里将类似配置都记载下来。 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmln <a href="https://www.cnblogs.com/aigeileshei/p/14844012.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/14816878.html
安装配置plsql连接远端oracle数据库 - guodaxia
要求: 不安装oracle数据库,仅仅安装plsql等组件实现访问操作oracle数据库。 1、准备: 下载plsql windows64位安装包12的版本(注意,plsql不要下载过于新的版本,容易出现想不到的问题,官网可以下载) 下载 installclient-basic-windows64-
2021-05-27T02:39:00Z
2021-05-27T02:39:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】要求: 不安装oracle数据库,仅仅安装plsql等组件实现访问操作oracle数据库。 1、准备: 下载plsql windows64位安装包12的版本(注意,plsql不要下载过于新的版本,容易出现想不到的问题,官网可以下载) 下载 installclient-basic-windows64- <a href="https://www.cnblogs.com/aigeileshei/p/14816878.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/14680392.html
jdk8 lambda学习 - guodaxia
1、函数式接口与lambda表达式 概述: 函数式接口也是 java interface 的一种,但还需要满足: 一个函数式接口只有一个抽象方法(SAM,single abstract method); Object 类中的 public abstract method 不会被视为单一的抽象方法;
2021-04-20T03:40:00Z
2021-04-20T03:40:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】1、函数式接口与lambda表达式 概述: 函数式接口也是 java interface 的一种,但还需要满足: 一个函数式接口只有一个抽象方法(SAM,single abstract method); Object 类中的 public abstract method 不会被视为单一的抽象方法; <a href="https://www.cnblogs.com/aigeileshei/p/14680392.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/14657856.html
记一次SQL优化 - guodaxia
业务查询缓慢,要求优化查询速度,优化步骤一一枚举出来,防止忘了。 总结: 1、尽量让SQL都使用索引,不要存在in这种不走索引的写法 2、适当的时候,可以将子查询优化成为表连接 原SQL: SELECT tab2.quoteOrderId, tab2.quoteOrderNumber, tab2.u
2021-04-14T06:47:00Z
2021-04-14T06:47:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】业务查询缓慢,要求优化查询速度,优化步骤一一枚举出来,防止忘了。 总结: 1、尽量让SQL都使用索引,不要存在in这种不走索引的写法 2、适当的时候,可以将子查询优化成为表连接 原SQL: SELECT tab2.quoteOrderId, tab2.quoteOrderNumber, tab2.u <a href="https://www.cnblogs.com/aigeileshei/p/14657856.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/13362639.html
aop实现记录后端用户访问 - guodaxia
记录: 访问ip, 请求链接, 请求参数, 请求头, 返回信息... 问题1: 如何实现aop切片的就是Controller中的请求方法? 监听xxxController下的所有方法? 担心Controller中有部分方法是普通方法,例如private String datePares(Date d
2020-07-22T11:07:00Z
2020-07-22T11:07:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】记录: 访问ip, 请求链接, 请求参数, 请求头, 返回信息... 问题1: 如何实现aop切片的就是Controller中的请求方法? 监听xxxController下的所有方法? 担心Controller中有部分方法是普通方法,例如private String datePares(Date d <a href="https://www.cnblogs.com/aigeileshei/p/13362639.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/13324330.html
对于nginx我的简单理解 - guodaxia
nginx: 一种常用的反向代理服务器。 什么是反向代理? 代理,例如java中的代理模式。 业务场景: A 访问 B 正向代理: A -> 代理人AProxy -> B 例如:我们使用fiddle抓包,使用的就是正向代理 反向代理: A -> B代理人BProxy -> B 我们说的nginx就是
2020-07-16T10:46:00Z
2020-07-16T10:46:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】nginx: 一种常用的反向代理服务器。 什么是反向代理? 代理,例如java中的代理模式。 业务场景: A 访问 B 正向代理: A -> 代理人AProxy -> B 例如:我们使用fiddle抓包,使用的就是正向代理 反向代理: A -> B代理人BProxy -> B 我们说的nginx就是 <a href="https://www.cnblogs.com/aigeileshei/p/13324330.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/13324212.html
使用coding + webhook实现自动部署 - guodaxia
coding 是什么? 类似github,应该说是封装github功能的代码管理平台,国内私有库。 webhook是什么? webhook是一种api概念,指的是请求来源不是前端,而是推送。使得请求更具有实时性,不需要一直轮询。 我们使用的是coding提供的webhook服务,它监听我们对代码库做
2020-07-16T10:23:00Z
2020-07-16T10:23:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】coding 是什么? 类似github,应该说是封装github功能的代码管理平台,国内私有库。 webhook是什么? webhook是一种api概念,指的是请求来源不是前端,而是推送。使得请求更具有实时性,不需要一直轮询。 我们使用的是coding提供的webhook服务,它监听我们对代码库做 <a href="https://www.cnblogs.com/aigeileshei/p/13324212.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/13254038.html
记一次阿里云服务器的环境配置 - guodaxia
安装git yum -y install git ssh设置公钥连接 检查sshd状态status sshd.service新建sshd_config文件:vim /etc/ssh/sshd_config配置如下:##修改端口2207Port 2207 AddressFamily AnyListen
2020-07-06T03:47:00Z
2020-07-06T03:47:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】安装git yum -y install git ssh设置公钥连接 检查sshd状态status sshd.service新建sshd_config文件:vim /etc/ssh/sshd_config配置如下:##修改端口2207Port 2207 AddressFamily AnyListen <a href="https://www.cnblogs.com/aigeileshei/p/13254038.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/12264232.html
复杂方法的开发-分治策略 - guodaxia
软件开发的关键在于应用抽象的概念。方法抽象是通过将方法的使用和它的实现分离来实现的。用户在不知道方法是如何实现的情况下,就可以使用方法。方法的实现细节封装在方法内,对使用该方法的用户来说是隐藏的。这就被称为信息隐藏或者个封装。如果决定改变方法的实现,但只要不改变方法签名,用户的程序就不会受到影响。方
2020-02-05T08:15:00Z
2020-02-05T08:15:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】软件开发的关键在于应用抽象的概念。方法抽象是通过将方法的使用和它的实现分离来实现的。用户在不知道方法是如何实现的情况下,就可以使用方法。方法的实现细节封装在方法内,对使用该方法的用户来说是隐藏的。这就被称为信息隐藏或者个封装。如果决定改变方法的实现,但只要不改变方法签名,用户的程序就不会受到影响。方 <a href="https://www.cnblogs.com/aigeileshei/p/12264232.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/12251199.html
封装 - guodaxia
未封装的对象可能会比较难堪 直接将属性暴露出来,使用圆点运算符来存取 d.age=2; 但是无法确定使用者是否这样操作: d.age=-2; 因此,有必要对使用者的使用权限做限制,告诉它可以怎样操作,不可以怎么操作。 封装的手段是: private 修饰类的属性,使得只能本类使用,关闭了外界访问通道
2020-02-02T02:17:00Z
2020-02-02T02:17:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】未封装的对象可能会比较难堪 直接将属性暴露出来,使用圆点运算符来存取 d.age=2; 但是无法确定使用者是否这样操作: d.age=-2; 因此,有必要对使用者的使用权限做限制,告诉它可以怎样操作,不可以怎么操作。 封装的手段是: private 修饰类的属性,使得只能本类使用,关闭了外界访问通道 <a href="https://www.cnblogs.com/aigeileshei/p/12251199.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/12251109.html
包与访问权限修饰符 - guodaxia
一个简单的java程序: class Test1{ public static void main(String[] args){ System.out.println("helloWorld"); } } 可以直接执行。这是否用到了其他对象呢?暂时不考虑它 如果需要与其他类型对象进行通信呢,如:
2020-02-02T01:55:00Z
2020-02-02T01:55:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】一个简单的java程序: class Test1{ public static void main(String[] args){ System.out.println("helloWorld"); } } 可以直接执行。这是否用到了其他对象呢?暂时不考虑它 如果需要与其他类型对象进行通信呢,如: <a href="https://www.cnblogs.com/aigeileshei/p/12251109.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/12245478.html
面向对象思想概述 - guodaxia
java是一门面向对象设计的语言,面向对象是什么呢?是一种思想,一种解决问题的手段。 面向对象与面向过程 面向对象与面向过程其目的都是解决问题 而面向对象针对点较为宏观,类似分而治之的解决方式,处理问题找的不是问题的解决步骤,而是针对能完成该步骤的人,也是我们生活中常见的管理方式。 面向过程针对较为
2020-01-31T07:17:00Z
2020-01-31T07:17:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】java是一门面向对象设计的语言,面向对象是什么呢?是一种思想,一种解决问题的手段。 面向对象与面向过程 面向对象与面向过程其目的都是解决问题 而面向对象针对点较为宏观,类似分而治之的解决方式,处理问题找的不是问题的解决步骤,而是针对能完成该步骤的人,也是我们生活中常见的管理方式。 面向过程针对较为 <a href="https://www.cnblogs.com/aigeileshei/p/12245478.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/12244941.html
图解插入排序 - guodaxia
插入排序,见名知意思,就是将元素插入到它应该待的位置,来实现排序。什么叫应该待的位置呢?通俗点说,插入排序的原理是将一个元素插入到有序数组,不断地扩展有序数组的长度实现整个数组的有序。 插入排序进行的移位操作有两个: 1、是将要插入元素清除,其他与有序数组无关元素后移 2、是在找到了插入位置之后的插
2020-01-31T03:58:00Z
2020-01-31T03:58:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】插入排序,见名知意思,就是将元素插入到它应该待的位置,来实现排序。什么叫应该待的位置呢?通俗点说,插入排序的原理是将一个元素插入到有序数组,不断地扩展有序数组的长度实现整个数组的有序。 插入排序进行的移位操作有两个: 1、是将要插入元素清除,其他与有序数组无关元素后移 2、是在找到了插入位置之后的插 <a href="https://www.cnblogs.com/aigeileshei/p/12244941.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/aigeileshei/p/12244813.html
图解冒泡排序 - guodaxia
冒泡排序之所以叫冒泡排序,是因为其排序规则如果水中气泡一样,从底部到顶部依次变大,最顶部的一定是最大值,通过不断的冒泡,实现数据的有序化。 从底部开始冒泡,冒泡到哪个位置,该位置即为底部元素中的最大值,一轮冒泡结束,最大值就到了顶部。进行数组长度-1次数的冒泡,数据就可以实现从大到小的排序了。 这一
2020-01-31T03:08:00Z
2020-01-31T03:08:00Z
guodaxia
https://www.cnblogs.com/aigeileshei/
【摘要】冒泡排序之所以叫冒泡排序,是因为其排序规则如果水中气泡一样,从底部到顶部依次变大,最顶部的一定是最大值,通过不断的冒泡,实现数据的有序化。 从底部开始冒泡,冒泡到哪个位置,该位置即为底部元素中的最大值,一轮冒泡结束,最大值就到了顶部。进行数组长度-1次数的冒泡,数据就可以实现从大到小的排序了。 这一 <a href="https://www.cnblogs.com/aigeileshei/p/12244813.html" target="_blank">阅读全文</a>