振伟普拉斯的博客

写写代码,做做架构


  • 首页

  • 归档

  • 标签

  • 摄影

  • 站点地图

  • 关于

  • 搜索

一种后台管理系统接口防重复点击实现方式

发表于 2020-06-17

我们知道,分布式系统中实现接口的幂等性操作需要用到分布式锁,比如使用Redis的setnx命令实现。但是在一些内部管理系统中可以使用更加简便的方式,下面就分享其中一种。

使用前提

后台管理系统一般也是多台服务器部署的,下面这种方式使用的前提是,同一用户的请求会发送到同一服务器的应用上,可以使用nginx的ip hash或者根据cookie分流方式。

使用方式

添加帮助类:

阅读全文 »

SpringBoot 日志 logback-spring.xml 配置技巧:使用 springProfile 分环境打印日志到不同目标

发表于 2020-06-10

使用SpringBoot开发项目,日志一般使用logback,配置文件默认名字就是:logback-spring.xml。

所有日志配置都有个基本的诉求:不同环境输出到不同目标。比如,开发环境输出到控制台,方便在IDEA、Eclipse等IDE里直接查看;测试、生产环境则输出到日志文件。

这时logback-spring.xml配置文件就需要根据环境配置:

阅读全文 »

PostgreSQL 字符串分隔函数(regexp_split_to_table、regexp_split_to_array)

发表于 2020-06-01

PostgreSQL数据库提供regexp_split_to_table和regexp_split_to_array两个函数用于分隔字符串成表和数组,在某些场景下使用起来还挺方便的。

举个例子:有这样一张表,维护用户的兴趣,多个兴趣用逗号分隔。

1
2
3
4
5
6
7
8
9
10
-- 表结构
CREATE TABLE public.t_user
(
user_name character varying(20) NOT NULL, -- 用户姓名
interest character varying(100), -- 兴趣,多个兴趣都好分割
CONSTRAINT t_user_pkey PRIMARY KEY (user_name)
);
-- 数据
INSERT INTO public.t_user(user_name, interest) VALUES ('张三', '足球,篮球,羽毛球');
INSERT INTO public.t_user(user_name, interest) VALUES ('李四', '篮球,排球');
阅读全文 »

Windows Terminal 初体验(安装、设置、美化)

发表于 2020-05-30

受够了这么多年的Cmder,终于,在Build 2020大会上,微软发布了Windows Terminal的正式版。全新的样式,支持自定义主题和配置。以后在Windows下再也不用面对丑陋的命令行了。

本片文章带大家初体验这微软新发布的Windows Terminal。

1590911187422

阅读全文 »

Windows 使用 netstat 和 tasklist 查看端口被哪个程序占用

发表于 2020-05-10

在Windows下开发有时会遇到端口被占用的情况,本文介绍定位端口被哪个进程占用的方法。

步骤一,使用netstat命令查看端口被那个进程占用,用法:netstat -ano | findstr 端口号,如:

1
2
3
4
5
6
7
8
9
10
11
12
D:\>netstat -ano | findstr 8888
TCP 0.0.0.0:8888 0.0.0.0:0 LISTENING 11008
TCP 127.0.0.1:1594 127.0.0.1:8888 TIME_WAIT 0
TCP 127.0.0.1:1595 127.0.0.1:8888 TIME_WAIT 0
TCP 127.0.0.1:1597 127.0.0.1:8888 TIME_WAIT 0
TCP 127.0.0.1:1598 127.0.0.1:8888 TIME_WAIT 0
TCP 127.0.0.1:1600 127.0.0.1:8888 TIME_WAIT 0
TCP 127.0.0.1:1601 127.0.0.1:8888 TIME_WAIT 0
TCP 127.0.0.1:1603 127.0.0.1:8888 ESTABLISHED 7284
TCP 127.0.0.1:1604 127.0.0.1:8888 ESTABLISHED 7284
TCP 127.0.0.1:8888 127.0.0.1:1603 ESTABLISHED 11008
TCP 127.0.0.1:8888 127.0.0.1:1604 ESTABLISHED 11008

可以看出8888端口被11008进程占用。

步骤二,然后使用tasklist命令查看进程号对应的应用程序,用法:tasklist | findstr 进程号,如:

1
2
D:\>tasklist | findstr 11008
node.exe 11008 Console 1 116,460 K

最终可以定位出8888端口是被node程序占用了。

阅读全文 »

免费的文件对比工具(WinMerge)

发表于 2020-05-08

程序员在实际工作中不时的会需要用到对比工具。比如:对比两个文件(文件夹)的差异,用于定位代码修改情况等。很多老程序员可能习惯使用BCompare软件,这款软件是挺好用的,但是就是收费。

今天发现一个免费的对比工具(WinMerge,https://winmerge.org/),github地址:https://github.com/WinMerge/winmerge。

WinMerge虽然免费,但是功能一点也不含糊,支持代码高亮、文件合并、文件夹对比、甚至图片对比等功能。

阅读全文 »
1234…35
振伟普拉斯

振伟普拉斯

209 日志
78 标签
RSS
Creative Commons
友情链接
  • 美团技术团队
  • 阿里中间件团队博客
  • 阮一峰的网络日志
粤ICP备18019803号 © 2017 – 2021 振伟普拉斯
|