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

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

2018-06-16 23:06:33

阅读数 771

评论数 1

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

https://gitee.com/xxssyyyyssxx/network   我们项目中可能会使用很多的http请求的库,比如URLConnection、ApacheClient、OkHttp库等。每个库的操作方式都不一样,这是一个巨大的困扰。如果需要换一个库,那需要改变的东西就很多。利用抽...

2018-06-16 22:55:36

阅读数 382

评论数 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

阅读数 332

评论数 1

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

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

2018-06-14 18:31:16

阅读数 1067

评论数 0

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

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

2018-04-28 16:19:34

阅读数 541

评论数 1

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

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

2019-01-12 10:45:28

阅读数 43

评论数 0

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

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

2019-01-12 10:14:02

阅读数 33

评论数 0

接口日志统一处理

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

2018-11-27 20:16:40

阅读数 322

评论数 4

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

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

2018-11-20 15:37:43

阅读数 246

评论数 0

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

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

2018-11-19 09:48:39

阅读数 286

评论数 0

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

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

2018-11-05 10:30:22

阅读数 87

评论数 0

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

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

2018-11-05 10:10:19

阅读数 1066

评论数 0

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

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

2018-10-14 15:33:18

阅读数 332

评论数 0

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

最近开发中需要实现服务端的推送,经过一段时间的资料查询最终锁定使用websocket来实现。JavaEE本身就支持WebSocket。我们只需要开发一个EndPoint来处理连接、消息等即可。但是WebSocket的session管理是开发中的重中之重和难点,因为你需要知道推送给谁,就需要保存代表...

2018-10-14 15:07:47

阅读数 125

评论数 0

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

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

2018-10-08 15:29:02

阅读数 133

评论数 0

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

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

2018-09-06 11:37:46

阅读数 559

评论数 0

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

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

2018-08-12 09:35:04

阅读数 266

评论数 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

阅读数 204

评论数 0

SpringBoot多数据源配置和使用

SpringBoot中使用JPA如果是单数据源,很好处理,只需要在配置文件中配置连接参数和性能参数即可。如下: username、password、url、driver-class-name等配置省略。。。 spring.datasource.type=com.alibaba.druid.po...

2018-08-01 09:36:10

阅读数 328

评论数 0

一个JPA环境下原生SQL查询的工具类

感谢JFinal的Db.paginate方法,此实现参考之。 我们在JPA环境下,某些查询的SQL可能是动态生成的,查询或者分页我们就需要手动使用EntityManager来查询,参数处理和结果集就需要手动,此工具类就是干这些脏活累活的。废话不多说,直接上代码。 import cn.palm...

2018-08-01 09:05:15

阅读数 531

评论数 0

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