一个http请求工具类的接口化(多种实现)

针对上一篇文章的接口设计,提供了三种实现URLConnection、ApacheHttpClient、OkHttp3。 现给出三种实现的继承树。 HTTPURLConnection ApacheHttp OkHttp3 首先每种实现都需要实现模板方法HttpTemplate。...

2018-06-16 23:06:33

阅读数 1269

评论数 1

一个http请求工具类的接口化(接口设计)

https://gitee.com/xxssyyyyssxx/httpclient https://gitee.com/xxssyyyyssxx/httpclient-interfacing模块化处理之后的,更清晰 我们项目中可能会使用很多的http请求的库,比如URLConnection、A...

2018-06-16 22:55:36

阅读数 671

评论数 0

一个通用的Json解析框架接口设计(二)- 实现

https://gitee.com/xxssyyyyssxx/Json-fastjson https://gitee.com/xxssyyyyssxx/Json-orgJson https://gitee.com/xxssyyyyssxx/Json-Gson https://gitee.co...

2018-06-14 18:55:06

阅读数 475

评论数 1

一个通用的Json解析框架接口设计(一)-接口设计

我们项目中可能会用到许多的json框架,Fastjson、jackson、Gson、orgjson、json-lib,其实现方式各不相同,接口Api就不一样,我们想换一个json框架改动的地方就会很多。参考SLF4J的思想,我统一了json框架的调用方式。 https://gitee.com/x...

2018-06-14 18:31:16

阅读数 1542

评论数 0

一个处理SQL语句多条件添加的工具类

我们写SQL语句的时候,有时候查询条件非常多,并且可能有可能没有,如果手动拼写,可能由于疏忽少写空格,关键字等,并且添加条件的时候可能需要写大量的判断语句,非常不好。我写了一个工具类,很适合处理这种情况。源码如下。 import java.util.*; import java.util.re...

2018-04-28 16:19:34

阅读数 672

评论数 1

PushbackInputStream的好处

我们知道一般的InputStream只能读取一次,顺序的,PushbackInputStream内部通过一个缓冲数组和位置指针可以实现读取之后通过一个方法(unread)将数据退回去,方便地实现读取一个流的前面一些数据做某些处理,比如判断文件头。达到男人对女人说的:我只看看,我不碰你。类似的还有P...

2019-05-17 09:39:59

阅读数 12

评论数 0

SpringBoot中接口加密解密统一处理

我们与客户端的接口交互中,为了更高的安全性,我们可能需要对接口加密(请求参数加密,服务端解密)、返回信息加密(服务端加密,客户端解密),但是也不是所有的接口都这样,有些接口可能不需要,我们可以使用注解来轻松达到此要求。 将接口参数的加密解密和返回信息的加密解密分开,分别定义注解,利用Contro...

2019-03-06 10:03:10

阅读数 691

评论数 2

系统参数设置及单位的处理

系统中一般存在很多整个系统的全局配置,还需要可以更改。我们可以设置一个key-value表,使用的时候根据key获取值即可。 表设计如下: CREATE TABLE `kv` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `...

2019-01-12 10:45:28

阅读数 190

评论数 0

Java判断一个点是否在一个多边形内部

import java.awt.geom.Point2D; import java.util.List; /** * 判断一个点是否在一个多边形内 * 提供了三种计算方式,孰好孰坏在实践中比较一下 * @author xiongshiyan at 2019/1/11 , contact ...

2019-01-12 10:14:02

阅读数 306

评论数 0

接口日志统一处理

我们项目中可能有这种需求,每个人请求了哪些接口?做了什么事情?参数是什么?重要的接口我们需要记日志以便查找。我们不可能在每个接口中去一一处理,可以借助Spring提供的AOP能力+自定义注解轻松应对。 首先我们定义用于Controller方法的注解,使用了此注解的就记录日志。 /** * ...

2018-11-27 20:16:40

阅读数 854

评论数 4

cron(二)根据cron表达式计算给定时间的下一个执行时间

        书接上一篇,根据cron表达式切割计算每个域的执行点,可以计算出给定时间的下一个执行时间。思路是: 1、找到所有时分秒的组合并按照时分秒排序 2、给定的时分秒在以上集合之前、之后处理 3、给定时时分秒在以上集合中找到一个最小的位置 4、day+1循环直到找到满足月、星期的那一天...

2018-11-20 15:37:43

阅读数 778

评论数 3

cron(一)根据cron表达式计算每天有哪些执行时刻

         我们项目中一般会有很多的定时任务,我们怎么知道这些定时任务是否正常执行了呢?一个基本的想法是,在任务执行前保存一条记录,任务执行后更新此记录的结束时间和标记,异常的时候记录失败标记和异常信息,然后管理员每天登录的时候检查每个任务是否正常执行。如果记录与设置的执行时刻点匹配,说明任...

2018-11-19 09:48:39

阅读数 848

评论数 0

集群机器循环调用实现,基于SpringBoot

以下的内容纯属理论探讨,除非万不得已最好不要这么干,因为会造成集群的有状态化和维护困难。 假设一个集群中有三台tomcat,在发生某件事情(比如接口调用)的时候我需要首先在本机做某件事情,如果做不了,就调用下一台机器,如此往复,直到最后一台。 我们可以将tomcat定义成为一个环,每台保存自己...

2018-11-05 10:30:22

阅读数 133

评论数 0

基于token的登录管理(多设备登录、单设备登录)

不管是客户端接口还是网页H5接口,一般我们都需要登录验证,即要求所有的接口访问都必须在登录之后,以确认身份,防止非法调用。一般的流程都是登录的时候返回一个代表此登录的token,以后所有接口都带上此token,在所有接口调用之前拦截验证,一般都是通过AOP或者一个Filter、拦截器来实现。而退出...

2018-11-05 10:10:19

阅读数 3042

评论数 0

SpringBoot使用WebSocket实现服务端推送--集群实现(2)

书接上文,本文介绍了一种实现集群管理和消息传送方式。 在集群模式情况下,一般是Nginx反向代理到多台Tomcat或者SLB代理到多台Tomcat的方式,怎么实现给某个人推送消息?比如WebSocket1连接到Tomcat1,但是在Tomcat2需要给WebSocket1发送消息,怎么办?一般的...

2018-10-14 15:33:18

阅读数 1037

评论数 0

SpringBoot使用WebSocket实现服务端推送---单机实现(1)

[![star](https://gitee.com/xxssyyyyssxx/websocket-springboot-starter/badge/star.svg?theme=dark)](https://gitee.com/xxssyyyyssxx/websocket-springboot-...

2018-10-14 15:07:47

阅读数 335

评论数 0

密码错误次数管理和图形验证码管理接口和实现

在开发中,登录接口一般会校验密码,当密码错误次数达到一定次数(阀值)就激活图形验证码校验,此举的目的主要是为了防止暴力破解密码。基于此,我抽取了密码次数管理接口和验证码校验。 错误次数管理器: /** * @author xiongshiyan * 密码错误管理器 * 可以使用Rei...

2018-10-08 15:29:02

阅读数 306

评论数 0

Springboot环境下微信开发的入口框架

感谢@JFinal提供的JFinal-weixin项目,使用到了里面的微信入口消息和出口消息及工具类。 https://gitee.com/jfinal/jfinal-weixin jfianl-weixin项目非常适合于在Jfinal环境下开发微信消息处理,只需要继承MsgControlle...

2018-09-06 11:37:46

阅读数 726

评论数 0

gradle项目发布到jcenter、maven中央库

! !!首先注意一点,私有项目或者公司的业务项目千万要慎重,就不要上传到这些开放源代码的库中了,可以上传到公司自己搭建的nexus服务器。 我们需要在 bintray.com 上注册账号,注意要选“For an Open Source Account Sign Up Here”,否则无法上传。...

2018-08-12 09:35:04

阅读数 437

评论数 0

MySQL存四字节数据(emoji)

现在MySQL的字符编码使用最多的是utf8,但是此utf8最多只能存3字节字符,如果遇到像emoji这种四字节字符就无能为力了,保存的时候就会抛出异常:Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\...

2018-08-02 11:05:29

阅读数 360

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭