开发总结(财务中台项目)

1.   前言

本次负责开发银企直联(到账信息总览,到账通知,消息提醒模块等功能),前端花的时间比较多,做个总结。

2.   收获

2.1  sql中用if语句增加灵活性

比如到账信息总览的销售分析表

总体上属于分组求和,难点在于每一个列的求和条件都不一样,如果分别写sql来查询的话,那至少要写3条sql,而且查询出来之后还要用代码把查出来的数据一一拼装起来,从性能和代码量来说都不是合理的解决办法,用if语句完美的解决了这个问题。

对每一列用if语句增加不同的条件过滤数据之后再求和,而共同的条件则放在where语句。

然后因为表格中的数据的细粒度也不一样,所以用了mybatis的choose语句,来达到sql复用的目的。这样,本来要写9条sql语句来查询,现在用一条sql就解决了。

2.2  异步提高程序性能

一般来说,如果是在分布式系统中,一个服务调用其他服务都是要用异步调用来提高响应速度。

到账通知的下载功能因为要调用第三方接口,而第三方接口响应速度很慢,而业务上这个接口调用需要独占式进行,所以要用异步加分布式锁来处理。

分布式锁采用的是redis分布式锁,这样保证最多只有一个线程在调用这个接口(除非这个线程阻塞超过10分钟而导致过期了),而这里之所以没有用new一个线程来处理,而是采用只有一个线程的线程池来处理,是为了避免线程管理混乱,导致程序奔溃。

原文地址:https://www.cnblogs.com/xiejh8/p/10647779.html

时间: 2024-11-09 04:49:32

开发总结(财务中台项目)的相关文章

ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目

ASP.NET入门(1) - 建立和开发ASP.NET 5 项目 建立项目 首先,目前只有VS 2015支持开发最新的ASP.NET 5 程序,所以我们首先需要下载安装其最新的RC版本. https://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx 安装完毕以后,打开并建立新的Web Application项目: 然后在后一个界面中选择ASP.NET 5 Empty模板: 这里提2个注意点: 要

.Net程序员玩转Android开发---(2)Hello World项目创建

对于程序员来说,刚开始接触到的第一个项目都是Hello World, 我们这里第一个项目也从Hello Word创建. 1. 项目创建 运行eclipse.exe文件,打开开发工具eclipse,选择项目存放位置,界面如下 打开eclipse后,选择 file-new--Android Applicaton Project创建Android项目,界面如下 步骤如下 2.

加速Java应用开发速度2——加速项目调试启动速度

上一篇Spring/Hibernate提升速度的文章主要是通过一些技巧来提升启动速度,还是做不到如类的热部署/热替换.因此再写一篇关于热部署/热替换的文章.之前也有很多人介绍过这些知识,不过比较分散,我写此篇的目的是聚合它们.本文以HotSpot虚拟机为例. 首先让我们来看两个概念:热部署.热替换 热部署 即在容器运行过程中,重新加载类或重新加载整个项目.常见的解决方案就是使用自定义ClassLoader: 部分加载的示例:如JSP.Play框架: 重新加载整个项目的示例:如Tomcat.Jet

iOS:开发常用GitHub开源项目(持续更新)

IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire cnoon Swift简洁网络请求库 SBJson stig Json解析引擎 JSONKit johnezang Json解析引擎 MJExtension CoderMJLee 字典转模型框架 KissXML robbiehanson XML解析 RNCryptor rnapier AES加密 F

java开源框架SpringSide 3.1.4.3开发Web的demo项目实战

原创整理不易,转载请注明出处:java开源框架SpringSide 3.1.4.3开发Web的demo项目实战 代码下载地址:http://www.zuidaima.com/share/1781596496120832.htm SpringSide 3.1.4.3是目前SpringSide的最新版本,也是完成度比较高的一个版本,用来做实际项目的开发应该丝毫不成问题.这里写一下使用该版本开发一个简单Web项目的全过程,当然,最重要的是我自己的一些心得体会.我的文章很长,只有耐下性子细看,才能体会个

[Phonegap+Sencha Touch] 移动开发18 Sencha Touch项目通过phonegap打包后的程序名字的问题

之前说过 sencha phonegap init com.pushsoft.myapp MyApp 之后打包的程序安装包apk的名字是"MyApp.apk",显示在手机桌面上的程序名称(图标下面的文字)也是"MyApp" 如果要换成其他名字,修改 MyApp\config.xml 文件,把顶部"<name>MyApp</name>"中间MyApp的改成需要的名字. 注意如果xml内容有中文,要改成utf-8编码,注意是文

C#程序员学习Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有一个

spring+springmvc+hibernate架构、maven分模块开发样例小项目案例

maven分模块开发样例小项目案例 spring+springmvc+hibernate架构 以用户管理做測试,分dao,sevices,web层,分模块开发測试!因时间关系.仅仅測查询成功.其它的准备在ext上做个完整的案例来的,可惜近期时间非常紧. 高级部分也没做測试,比方建私服,其它经常使用插件測试之类的,等用时间了我做个完整ext前端和maven 完整的样例出来,在分享吧. 只是眼下这些撑握了.在项目中做开发是没有问题的,其它高级部分是架构师所做的. 之前我有的资源都加上了积分,有些博友

windows开发平台下本地项目如何使用git管理

作为git使用的初级场景,用最简单的方法介绍一下这个优秀的版本控制工具,一般情况下是这样的: 本地有一个项目,比如名称是"hellopro",因为我们需要共享代码,合作开发,所以需要使用github或者其他服务器托管该git库. 这里只介绍Windows下最简单的操作,所以一些操作的提示信息可能看不到,进阶请使用bash. 1.init 进入项目文件夹,最简单方法:右键Git Init Here 操作完成后,右键菜单出现 Git Add all files now 等 2. add 这