文章分类 - 4.技术细节
摘要:本产品中调用存储过程,前端属性绑定到只需要知道Model对象的属性名称。引用时直接使用属性名会导致程序中出现很多harcode代码。可以为每个Model类定义一个ModelField类,ModelField类定义了一些返回Model类属性名称的方法,这样可以防止hardcode代码,对以后的维护也很
阅读全文
摘要:软件需要发布一个新版本时,需要比较多的操作。其中很多操作,我们是可以使用脚本语句代替人手去完成的,这样可以减少人工操作出错的风险,也能提高效率,我们只需要准备好必要的文件就好了。本文将介绍如何使用Jenkins和python脚本帮助我们发布软件新版本,包括:”准备发布新版文的文件RPK(releas
阅读全文
摘要:安卓有自带的数据库sqlite可以存储数据。Sqlite数据库有一个问题是修改了Model对象代码后,对应的sqlite数据库表结构不会跟着改变,必须编写sql命令手动去更新。greenDAO是面向Android的ORM开源框架,使用它可以很方便的操作sqlite数据库。本文将介绍使用greenDa
阅读全文
摘要:在开发和测试阶段,需要编写单元测试、集成测试自动化测试。编写自动化测试时需要用到假数据去测试特定的功能,我们可以使用sql命令把假数据存入到数据库表中。但是通过这种方式插入数据,它的数据格式、表与表关联的数据不一定符合要求。使用不准确的数据运行自动化测试是无法达到测试目的的。我们可以使用存储过程来检
阅读全文
摘要:使用Selenium IDE自动化测试可以模拟人在网页上进行操作,所以我们可以使用Selenium代替我们做一些重复的人工测试。本文将介绍如何安装和使用selenium IDE,包括:“在chrome浏览器安装selenium ide插件”、“Selenium IDE工具的使用”、“Selenium
阅读全文
摘要:网页前端请求服务器完成登录后,会获取一个session会话。session会有一个有效期,有效期过后服务器应该要告诉前端需要重新登录。如果在不同的浏览器登录,前者的会话也应该失效。本文将介绍如何实现这样的功能,包括"前端请求后端判断会话有效期JS代码"、“服务器后端拦截有用户请求代码”。 1、前端请
阅读全文
摘要:服务器可能会收到各种角色用户的请求,如普通用户、游客、会员等。有些服务器接口,我们不想对所有角色开放,我们可以在接口里面设置访问权限,拒绝掉没有权限的请求。本文将介绍如何设置接口的角色访问权限,包括:“根据用户类型定义用户域枚举类”、“定义在服务器接口的拦截方法canCallCurrentActio
阅读全文
摘要:在程序运行过程中,可能会出现各种业务上或非业务上的错误。为了更好的管理和维护,需要将这些从错误分门别类。这样当出现错误时能够更精确的告诉开发人员,便于开发人员快速定位错误,解决问题。本文将介绍如何定义和使用错误码、错误信息,包括:“错误信息变量的定义”、“错误码的定义”、“在BO层(业务层)设置错误
阅读全文
摘要:正常的用户每天的登录退出不会太频繁,遇到频繁的登录则很可能是黑客行为。对于黑客行为,我们可以使用登录次数限制来应对。本文将介绍如何限制用户每天的登录次数,包括:“记录当天用户账号的登录次数”、“用户进行登录请求时,检查当天账号的登录次数”、“用户正常退出登录,更新登录次数”。 1、记录当天用户账号的
阅读全文
摘要:有时用户从不同的设备登录服务器,新登录的会话应该要踢掉旧会话。在我们的产品中,用户主要可以通过网页前端登录和从收银机POS登录。用户可以在浏览器和一台POS收银机同时登录,两个会话互不影响。用户在客户端登录前,需要先让POS收银机登录,POS收银机也需要一个会话信息,以便服务器区分不同的POS收银客
阅读全文
摘要:为了便于查询,我们要给一个零售单生成零售单号SN。如何设计生成唯一的、并且能够与收银机器相关的SN。本文将介绍:“根据时间、收银机ID和随机数生成零售单号”、“根据零售单号生成退货单号”。 1、根据时间、收银机ID和随机数生成零售单号。 我们用一张数据库表t_pos存储着所有收银机器的编号,所以一个
阅读全文
摘要:为了安全,我们会采取对文件的重要信息进行加密。本文将介绍如何使用对称加密算法AES对文件进行加解密,包括:“替换local_policy.jar和US_export_policy.jar文件”、“加密文件内容”、“自定义PropertyPlaceholderConfigurer子类解密文件”。 1、
阅读全文
摘要:在日常开发中,我们经常需要用到日志来查看程序的运行情况,以便更好的把控项目。本文将介绍Java项目如何配置和使用log4j日志,包括:“使用Maven在pom.xml导入log4j的jar包”、“在resource目录下新建log4j.xml文件”、“log4j文件头信息”、“配置debug日志输出
阅读全文
摘要:白天时服务器一般收到用户的请求较多,执行比较多的任务。晚上收到用户的请求少,压力小,可以在夜间执行一些耗时的操作,如生成报表。本文将介绍,在多公司,一个公司对应一个数据库的情景下,如何在夜间执行任务,生成各个公司的报表。本文将介绍以下内容:“创建运行报表的相关类”、“报表类的执行逻辑”、“启动所有报
阅读全文
摘要:OpenID是用户在某一个公众号的唯一标识,用户不同公众号的的OpenID是不一样的。在开发的时候,我们有时需要获取用户的OpenID。本文将介绍以下内容:“用户页面授权HTML代码”、“调用服务器后端接口的js代码”、“用户静默授权后端接口”、“微信服务器回调我们的服务器接口”、“获取微信服务器返
阅读全文
摘要:在微信公众号开发中,我们需要接入微信服务器,让微信服务器与我们自己的服务器建立安全信道,建立信任。微信服务器向我们的服务器发送请求的时候会携带三个参数timestamp=时间戳&nonce=随机字符串&signature=签名。我们可以通过timestamp和nonce以及token来算出一个sig
阅读全文
摘要:开发好了小程序后,为了方便用户访问,可以把小程序码展示出来让用户扫码访问。本文将介绍如何生成小程序码。包括:“生成二维码的前端代码”、“请求后端接口的代码”、“生成二维码的后端代码”。 1、生成二维码的前端代码。 输入宽度来生成指定大小的二维码: <div id="codeMain"> <div c
阅读全文
摘要:申请微信模板成功后,我们应该怎样封装和发送消息到微信,让它推送到公众号。在本文中将会介绍封装和发送模板消息到微信,包括:“将需要发送的消息内容放到hashmap中存储”、“封装详细信息模板”、“拼接json格式数据”、“向微信发送POST请求”、“检查微信返回结果”。 1、将需要发送的消息内容放到h
阅读全文
摘要:有时为了快速响应用户的操作,可以选择现将服务器端的数据暂时保存到本地的sqlite中。后面再上传到服务器,服务器存到数据库,返回有真实ID的数据给客户端。客户端删除sqlite的临时数据,插入带有真实ID的数据。本文将介绍:“在sqlite数据库存入临时数据”、“查询临时数据”、“将查询到的临时数据
阅读全文
摘要:在客户端获取的当前时间和在服务端获取的当前时间往往会存在差异。有时我们需要知道在客户端创建数据时,相对于服务器的时间是多少。这是我们需要知道客户端和服务端获取当前时间的时间差,从而可以算出相对于服务器的时间。主要的过程分为:“在客户端启动时,请求服务器端,发送当前客户端时间T1”、“服务器端收到请求
阅读全文

浙公网安备 33010602011771号