0%

现在应用中类似 “优先按距离排序” 的功能已经很常见了,那么这些功能如何简单快速的去实现呢?本文将提供一个在数据量不是特别大的时候的解决方案,实现起来比较简单。先将用来演示的表结构和数据初始化一下

阅读全文 »

前两年做过一些微信公众号相关的开发。最近这两年自从微信小程序问世之后,公众号开发慢慢的淡出了视野。这段时间做了一个活动页,用到了微信网页授权登录的相关接口,坑点还是蛮多的,正好整理总结一下如何通过微信网页授权获取用户的基本信息。

阅读全文 »

通常情况下,图片的生成应当在客户端去实现。但是当我们必须在服务端去生成图片时 Barby Gem 是一个非常不错的选择。它是一个用来生成各种标准的条形码,以及二维码的库。Barby 的代码结构可以大致分为 生成器输出。输出器的功能非常全面,可以输出 Base64、PNG、PDF 等等,甚至我们可以基于 Barby 添加自己的输出器。

阅读全文 »

虽然下载文件有 Rails 默认的 send_datasend_file 方法,还有像 axlsx_rails 这样的第三方库。但是我仍然比较倾向于使用 Spreedsheet XML 的方式去开发下载文件的功能。

阅读全文 »

添加依赖

1
2
3
4
5
6
7

<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
阅读全文 »

查看证书有效期

Let’s Encrypt 默认情况下只提供三个月的有效期,在有效期剩余半个月的时候,Let’s Encrypt 会发送邮件给你,提醒你需要做证书的续期操作。或者我们也可以通过以下命令查看证书的剩余有效期限:

1
2
3
4
5
6
7
8
9
10
11
$ ./certbot-auto certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: example.com
Domains: *.example.com example.com
Expiry Date: 2019-06-19 09:37:01+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
阅读全文 »

简单校验

在后端开发的过程中,验证前端参数的合法性是一个必不可少的步骤。但是参数验证会产生大量的样板代码,导致代码可读性差。使用 validator-api 可以简洁优雅的验证参数。我们来看一段代码:

1
2
3
4
5
6
7
@GetMapping
public ResponseEntity index(@RequestParam("userOrderId") String userOrderId) {
// 对订单ID做非空校验
if (null == userOrderId || "".equals(userOrderId))
return ResponseEntity.badRequest().build();
return ResponseEntity.ok().build();
}
阅读全文 »

Let’s Encrypt 证书不仅是免费的,而且支持通配符证书,通配符证书指的是一个可以被多个子域名使用的公钥证书,多个子域名使用起来十分方便。申请和配置的流程都非常简单,虽然每次的有效期为 90 天,但可以通过脚本去更新证书,只要配置好了,几乎可以一劳永逸。而市场上其他的通配符证书都比较昂贵,个人开发者平时做个小东西玩玩,Let’s Encrypt 应该是最好的选择了。

阅读全文 »