潘军杰的博客

Go 生成合法的 IP

利用 Go 语言,生成合法的 IP,代码如下: package util import ( "fmt" "math/rand" "time" ) // 随机生成合法 IP,如: 222.16.123.95 func RandomIp() string { // IP 范围二维数组 ranges := ipRange() idx := newRand().Intn(10) return numToIp(ranges[idx][0] + newRand().Intn(ranges[idx][1]-ranges[idx][0])) } // 随机生成 ... 阅读全文
发表于 2017-07-19 11:14:15 阅读(25) 评论(0) 赞(0)

Go 发起 HTTP 请求及获取相关参数

Go 要请求远程网页,可以使用net/http包中的client提供的方法实现。查看了官方网站有一些示例,没有太全面的例子,于是自己整理了一下。 Get 请求 Get 请求可以直接 http.Get 方法,非常简单。 func httpGet() { resp, err := http.Get("http://www.01happy.com/demo/accept.php?id=1") if err != nil { // handle error } ... 阅读全文
转载于 2017-05-01 11:48:59 阅读(265) 评论(1) 赞(0)

MyBatis 自定义通用 Mapper

Mybatis 提供自动生成 Mapper 的工具,看看生成的 Mapper,不是尽如人意,比如多表关联和返回的数据类型和传入参类型上。一直想写一个通用的 Mapper,传参类型是 Map,返回 Map 类型;大体分两种数据库操作 DDL 和 DML 操作,而且 DML 分别提供获取一条记录和多条,插入一条记录,批量插入记录,更新,删除一条记录。其中 DDL 是参考 ... 阅读全文
发表于 2017-04-08 18:08:21 阅读(406) 评论(0) 赞(1)

JFinal 使用 HikariCP 数据库连接池

看了HikariCP 的源码,比较感兴趣,想在 JFinal 中集成这样的数据库连接池,发现并没有支持的插件,于是自己动手尝试写了 JFinal HikariCPPlugin 插件 ,得益于 JFinal 这么简洁的架构,几分钟时间就测试出炉了,肉眼测试,不严谨,如果有什么不妥的地方,希望网友补充斧正吧! 直接上代码,是程序员最喜欢干的事情: package com.jfi ... 阅读全文
发表于 2017-03-28 23:25:06 阅读(535) 评论(0) 赞(1)

Java Map 按 key 升序排序

最近开发微信和支付宝的 服务端 支付,涉及到字典的排序和 url 参数转换成字典的操作,整理了一个工具类: import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.uti ... 阅读全文
发表于 2017-03-18 23:48:20 阅读(326) 评论(0) 赞(0)

移动终端和 Java 服务端数据传输封装类

移动互联时代,常常碰到的是移动终端和服务端数据交互。终端把某种形式的数据传递给服务端,服务端收到数据后,需要根据双方约定的数据格式,取值再做处理。 传递的数据有哪些形式?一般分成三种形式 1:JSON 的流形式 2:纯粹的键值对形式 3:键值对和文件流并存的形式 其实 2-3 可以合并成一种形式来处理,以下将以 Java 服务端情况 ... 阅读全文
发表于 2017-03-05 17:55:07 阅读(370) 评论(0) 赞(0)

让 Ubuntu Nginx 使用 Let's Encrypt SSL 证书

看到 DiamondFsd 在 开源中国发表了《 Let's Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS 》,之前使用了腾讯云免费一年的商业 SSL,其中 Certbot 能通过 corn 定时更新证书,算是准永久免费的方案,所以也想试试 Let's Encrypt ,可惜 DiamondFsd 写的是基于 CentOS 服务器的,自己的是 Ubuntu ,所以在上文的基础上作修 ... 阅读全文
发表于 2017-02-12 23:26:04 阅读(465) 评论(0) 赞(0)

Go 查询数据库 Scan Null 字段报错解决办法

Go 语言基本类型都有默认值,比如整型,长整型,浮点型,字符串等等,都会有自己唯一的默认值 0,空字符串"",而不是nil, 这是它自身的特征,因为这个原因,Go 操作数据库,返回结果扫描填充结构体的时候,往往差强人意。当数据库字段是null值的时候,Goscan 数据填充结构体就出错了。 遇到这种情况,部分用户只能使用 sql.Null*** ... 阅读全文
发表于 2016-12-25 10:44:51 阅读(552) 评论(0) 赞(1)

Go 时间中文个性化处理

现在有些时间比较个性化,比如:5年前,11月前,20天前,23小时前,59分钟前,59秒前,刚刚... 等等,Go 语言可没有这些函数处理,我相信多数语言也不会内置处理此类的东西的,现在自己写个方法,首先要算出当前时间和给定的时间差,就是秒差,有了这个秒差,再进一步人工处理。废话少说,贴上代码吧(代码只是瞬间的思路和随手写法, ... 阅读全文
发表于 2016-09-26 00:06:51 阅读(634) 评论(0) 赞(4)

分布式部署一点理解

一个服务器硬件资源足够强(比如 CPU 内存 SSD磁盘 配置都很优秀),也难免有瓶颈的时候,理论上说,一个单机服务器,并发量是有限的,以 Linux 服务器为例,即使 CPU 有无数个,核心顶配,内存同样很大,SSD磁盘很快,最终也会遇到连接数爆棚的时候,这时,以上的配置都没有用武之地了,因为 Linux 服务器是有最大连接数的,同一个时 ... 阅读全文
发表于 2016-09-17 13:11:11 阅读(616) 评论(0) 赞(1)

让远程用户访问 MySQL 的步骤

为了安全,MySQL 数据库默认安装是不支持外网 ip 访问的,如果项目需要,可以配置外网 IP 访问,配置很很简单,只需两步完成配置。 以下的配置,可能会带来安全隐患,需要谨慎考虑。我的项目,由于采用了分布式的部署,服务器并不在一个内网段里,不得已只能开放外部访问了,同时我希望 MySQL 既能外部 IP 访问,也能 使用 127.0.0.1 ... 阅读全文
发表于 2016-09-17 12:19:28 阅读(618) 评论(0) 赞(1)

Ubuntu 14.04 搭建 vsftpd 服务器

需要搭建一个 独立 静态文件服务器,作为源服务器,给阿里云做 CDN 文件分发,我没有选择阿里云的 OSS 作为源存储,而是用自己的服务器。 多个应用程序选择 FTP 上传文件,到源文件服务器上。而放弃了挂载的方式,一来是集中管理,二来担心挂载出现问题,所以决定配置 FTP 服务器的方式做。我不能确定这种方式是否是最好的,在我这边 ... 阅读全文
发表于 2016-08-21 18:30:52 阅读(751) 评论(0) 赞(2)

Markdown 写接口文档不错

一直使用 Windows 作为开发环境,有一天切换到 OSX 有点不适应,另外发现使用 word 写接口文档,有点后悔,OSX 下office 难用不说,开始要找合适的代替品也有点困难,干脆寻找另类的产品试试,要求不高,就是写一些 标题 正文 和表格,有些示例,偶尔加点代码。 这些要求也许直接写html 比较好,但总不能上sublime text 吧,有点太原 ... 阅读全文
发表于 2016-08-04 21:02:51 阅读(1001) 评论(0) 赞(0)

Java 用一条语句搞定 Map 和 List 的定义和赋值

Java 里 Map 和 List 一般都先定义(初始化),然后赋值,最后使用的,有时候常量类里,想定义一个 Map 或 List 常量,上面说的做法就不适用了,有没有一个语句就同时搞定他们的定义和赋值呢? 这样做是可以的,请看代码: Map 的例子: @SuppressWarnings("serial") Map<Integer, String> wallet_type_map = new HashMap<In ... 阅读全文
发表于 2016-04-18 17:33:55 阅读(779) 评论(0) 赞(2)

让 Go 代码自动加载

有时 Go 项目开发过程中,让新增、修改的代码智能编译重启,避免人为频繁 build 工作,是不错的事情。 然而 Go 是不会内置这些东西的, 目前 Go 领域,有哪些类似的库呢?我们可以使用第三方的库实现这种工作,但仅限于开发的阶段,正式服务环境,应该不是非常必要这么做。 第三方实现的类库有这两个,使用起来都很方便: gin https:/ ... 阅读全文
发表于 2016-04-16 15:14:56 阅读(923) 评论(0) 赞(1)

Go 语言 json 的时间格式化

Go 语言开发 reset 的接口,结构体转成 json 的时间都是带时区信息的,这并不是我们想要的,例如: 结构体: type Article struct { WebSite string Title string Created time.Time } 结构体实例转成 json 后,结构: {"Created":"2016-03-20T20:44:25.371Z","Title":"测试标题5","WebSite":"5-wow.com"} 实际上我们需要这样的 json ... 阅读全文
发表于 2016-04-14 23:35:04 阅读(793) 评论(0) 赞(1)

Go 语言的一个配置文件解析器

Go 语言里找一个配置文件解析器,无意间发现了 https://github.com/robfig/config 这个库是 robfig 从 https://github.com/miguel-branco/goconfig 里分支修改过来的。看了下时间,已有一年多没动过了,估计库已相当完善,够用了。 在 github 里很多优秀的库或人,已经尘封了很长的时间,不知道什么原因,让人挺感慨的,毕竟前人花费 ... 阅读全文
发表于 2016-04-14 22:27:19 阅读(1040) 评论(0) 赞(1)

Go 语言的包

包是函数和数据的集合。用 package 关键字定义一个包。文件名不需要与包名一致。包名的约定是使用小写字符。 Go 包可以由多个文件组成,但是使用相同的 package <name> 这一行。让我们在文件 even.go 中定义一个叫做 even 的包。 Listing 3.1. 一个小包 package even ← 开始自定义的包 func Even(i int) bool { ← 可导出函数 ... 阅读全文
发表于 2016-04-12 21:08:37 阅读(642) 评论(0) 赞(1)

停留在 2016-04-07 23点 那刹间

心情沮丧,怀念小时候一周都素炒芹菜的日子和被托管的松柏林,那时记得满地都是木屑,大厅摆满木工道具:刨子,凿子,尺子,木块...自己常常碍手碍脚拿道具玩,但从未被训斥过... 从未被训斥过,即时自己反复不懂事的恶作剧,也如此。在我印象中,外公只会笑,咯咯的大笑,特别在我调皮碍事的时候。这种笑声会时不时在耳畔萦绕,外公 ... 阅读全文
发表于 2016-04-08 21:17:28 阅读(604) 评论(1) 赞(1)

Go 语言的 os 包使用

本文摘自博客园的 yumuxu,原地址: package main import ( "fmt" "io/ioutil" "os" "reflect" "time" ) func main() { dir, _ := os.Getwd() fmt.Println("dir:", dir) err := os.Chdir("d:/project/test2") dir, _ = os.Getwd() fmt.Println("dir:", dir) //参数不区分大小写 //不存在环境变量就返回空字符 ... 阅读全文
转载于 2016-03-29 00:08:48 阅读(768) 评论(0) 赞(0)

关于作者

About Me

签名:忘却理想,只为洒脱地活着!

文章数(57)

评论数(19)

访问数(40404)

最新评论