Daily Note

艾力老师34枚金币时间管理

SqlSessionTemplate

排名算法

http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html

https://www.cnblogs.com/zhengyun_ustc/archive/2010/12/15/amir.html

BootstrapValidator的使用

https://blog.csdn.net/fengsheng5210/article/details/78753329

BootstrapValidator超详细教程

http://wenda.bootcss.com/question/491

正确匹配URL的正则表达式

近乎完美的金额正则表达式两位小数

在线测试

Guns日志系统的流程

Guns第九节日志系统

使用Fiddler的AutoResponder转发请求

https://blog.csdn.net/panda_m/article/details/77892468

Fiddler 之AutoResponder

Spring boot 激活 profile的几种方式

https://my.oschina.net/u/1469495/blog/1522784

SpringBoot(7)–配置文件占位符,profile

怎么更改Guns项目名称?

mybatis在mapper.xml中处理大于、小于、不等于号的方法 - CSDN博客

JQuery 改变inputplaceholder的值 - CSDN博客

JS正则表达式验证数字非常全

正则表达式校验金额最多两位小数的实数 - CSDN博客

JS比较两个数值的大小实例_javascript技巧_脚本之家

第9章Spring Boot开发者工具- 简书

spring boot项目中使用spring-boot-devtools模块进行代码热部署,避免 …

自动部署

maven的wagon-maven-plugin插件详解

Maven插件wagon-maven-plugin自动化部署

git修改远程仓库地址| Drupal 笔记

IDEA git修改远程仓库地址- bozi - CSDN博客

使用 IDEA 远程 Debug

Guns Shiro放行接口

com.stylefeng.guns.config.web

ShiroConfig

/Shiro的过滤器链/
@Bean

public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager)

根据HttpServletRequest获取用户真实IP地址 - YancyMauno - 博客园

Java 通过Request请求获取IP地址 - 大大的微笑的专栏 - CSDN博客

java替换指定url里的参数值

IntelliJ IDEA使用教程 (总目录篇)

Intellij IDEA 2017 debug断点调试技巧与总结详解篇- 请叫我大师兄 …

mybatis xml中的数组

注意:collection=”list” 不是 collection=”#{list}”

ps -efps aux区别 - CSDN博客

linux 如何查看应用程序进程号、端口 - Hurpe - CSDN博客

Spring Boot 属性配置和使用

SpringBoot进阶教程 | 第一篇:YML多文档块实现多环境配…_CSDN博客

注意配置项的顺序问题!

js 定时器 | 菜鸟教程

Springboot循环依赖解决办法 - dx125806的博客 - CSDN博客

Mysql清空表(truncate)与删除表中数据(delete)的区别 - x…_博客园

Srping MVC中Controllervoid方法声明误区 - yh_zeng2…_CSDN博客

springMVC对于controller处理方法返回值的可选类型 - CSDN博客

StringUtils中isEmpty 和isBlank的区别 - 程序猿001 - 博客园

初识Jsoup之解析HTML

Jsoup处理Url与解析Html

mysql格式化日期 - kongweiteng - 博客园

架构设计之参数化与配置化

java集合入门和深入学习,看这篇就差不多了- 掘金

集合类- Java 面试宝典- 极客学院Wiki

40个Java集合面试问题和答案- ImportNew

Java给指定URL字符串添加值和获取URL字符串中的参数值 - CSDN博客

beetl中文文档

千万不要在定界符里使用占位符号,因为占位符仅仅嵌在静态文本里,如下例子是错误例子

1
2
3
4
<%
var a = "hi";
var c = ${a}+"beetl"; //应该是var c = a+"beetl"
%>

判断正整数的正则表达式

js货币比较 - CSDN博客

js 判断字符串中是否包含某个字符串 - 草木物语 - 博客园

这一次,让你彻底明白Java的值传递和引用传递!

java如何提取url里的域名

SpringBoot定时任务Cron表达式详解 - 51CTO.COM

@Transactional注解和synchronized关键字不能同时使用

MySQLTIMESTAMPDIFF和TIMESTAMPADD函数的用法 - 欣宇…_CSDN博客

并发页面访问量统计简单实现

PV统计优化设计

storm高并发UV统计

权限管理(项目和源码):一.springboot与shiro整合

MySql修改时间字段 - 要争气 - CSDN博客

在遍历List时,对List里的对象进行remove(),此操作会改变List的大小 …

Iterator/foreach遍历list时,删除元素的报错问题- 简书

java中int与Integer*用==*比较详解 - xingkongdeasi的专栏 - CSDN博客

树状结构Java模型、层级关系Java模型上下级关系Java模…_博客园

Java关于数据结构的实现:树 - 郭孝星 - CSDN博客

input onclick事件实现页面跳转 - Tiger覃 - 博客园

CountDownLatch的简单理解 - joenqc的博客 - CSDN博客

MySql数据库:数据查重、去重的实现

宝塔linux主机面板查看网站日志记录及分析网站日志的方法 - …

在intellij idea 中不用git 解除关联 - Alex_81D的博客 - CSDN博客

使用 Google Guava 美化你的 Java 代码

图解Git

廖雪峰Git教程

Pro Git book

【原】js实现复制到剪贴板功能,兼容所有浏览器

clipboard.js 将文本复制到剪贴板的现代方法

用jmeter进行多用户并发压力测试

Jmeter5.0脚本录制

MyBatis-Plus

ssm框架中,mybatis的sql语句日志输出 - 逸致 - CSDN博客

1
2
# 查看nginx
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
1
2
# 查看tomcat
netstat -antp | grep 9333 | grep ESTABLISHED -c

MySQL更新某个字段的值为原来的值加1 (非auto_increament) - 全国花 …

Idea:Git的常用菜单操作和常用命令【含分支创建、检出、提交、合并】

Spring Boot使用@Async实现异步调用:自定义线程池

handler有四个选择

  1. ThreadPoolExecutor.AbortPolicy() :抛出java.util.concurrent.RejectedExecutionException异常
  2. ThreadPoolExecutor.CallerRunsPolicy() : 重试添加当前的任务,他会自动重复调用execute()方法
  3. ThreadPoolExecutor.DiscardOldestPolicy() : 抛弃旧的任务
  4. ThreadPoolExecutor.DiscardPolicy() : 抛弃当前的任务

springboot 在idea中实现热部署

Spring Boot教程(十二):Spring Boot集成热部署插件devtools

Jmeter使用CSV Data Set Config参数化数据不重复的多次循环执行(实现多用户多次抽奖功能)

spring boot中返回httpcode和错误处理

去掉文本框前后空格(JS+JQuery) - 大da脸 - 博客园

【问题解决】IDEA右键选择new新文件的时候没有JSP文件选项解决

IntelliJ IDEA手动配置连接MySQL数据库 - 竹山一叶 - 博客园

java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ 解决方案

idea中xml打开方式变成file,代码变成灰色

@Builder*与@NoArgsConstructor* | Lombok - N!CE波 - 博客园

Lombok@Builder*和@NoArgsConstructor*冲突 - 编程之路 - Segment…

spring - Difference in @Resource and @Autowired - Stack Overflow

BootStrapTableJS封装 - Javascript教程_JS教程_技术…_红黑联盟

JS组件系列——表格组件神器:bootstrap table

Spring Boot 读取配置文件到静态工具类

spring boot 静态变量注入配置文件

Java 逐行读写 TXT 文件

程序变量命名的几种叫法

查询MYSQl数据表中的最后一条记录

SELECT * from tb where id = (SELECT max(id) FROM tb);

Lombok-@Cleanup

httpclient中post提交json和map参数

WebSocket 详解教程

前端数组 后端java mvc list 接收

支付系统设计:绑卡、签约和身份验证(四)

java中的replace和replaceAll的区别 - 人非生而知之者,…_CSDN博客

mybatis-3/ProductMapper.xml at master · mybatis/mybatis-3 · GitHub

Mybatis+0+null,小问题引发的血案

mybatis把整数0识别为null

java - BigDecimal scale not working - Stack Overflow

BigDecimal.setScale用法总结 - 简书

layer:子父之间的数据传递

JS函数修改html的元素内容,及修改属性内容

JavaScript 运算出现多位小数的解决办法

js float浮点数计算精度问题

MySQL时间操作

SELECT amount, orderid, date_add(order_time, interval 16 hour) 'order_time', date_add(pay_time, interval 16 hour) 'pay_time' FROM pay_record WHERE cpid = 1003 and ispay = 2

BigDecimal不整除异常- hello world - CSDN博客

bootstrap-Table 统计 求和 footerFormatter 分享

bootstrap-Table 统计 求和 footerFormatter PC WAP 手机端 安卓 等各种不显示 版面崩坏的解决办法

Java异步编程——深入源码分析FutureTask

IDEA Mybatis Plugin插件(方便在Dao接口和Mappper XML文件之间进行切换)

判断一个BigDecimal数值是否为零

MySQL查询一小时之内的数据

1
2
3
4
5
6
<select id="selectTotalCountByChannelId" parameterType="int" resultType="BigDecimal">
select count(*)
from pay_record
where channel_id = #{channelId}
and order_time > DATE_SUB(NOW(), INTERVAL 1 HOUR)
</select>

Hexo的版本控制与持续集成

Hexo作者的.travis.yml配置

78ce4df05e1e44bec02266d66758943d3cedf4de

1
2
# 提交本地hexo分支到远程仓库的hexo分支
> git push origin hexo:hexo

使用Travis CI自动部署Hexo博客

使用 Travis CI 自动更新 GitHub Pages

使用Travis CI自动构建hexo博客

Hexo博客重启计划

打造个性超赞博客Hexo+NexT+GitHubPages的超深度优化| reuixiy

https://godweiyang.com/2018/04/13/hexo-blog/

Hexo + Travis CI 博客管理

git rm –cached next

Windows系统下更新npm和node

node的n模块并不支持windows,所以以上命令只能算是linux等系统下的更新命令。

怎么进行:URLEncode编码 与 URLDecode解码

URL在线编解码

Springboot之接收json字符串的两种方式-yellowcong

postman 发送json请求

json在线编辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package com.dubbo.pay.modular.api.chanel.channel4.notify;

import com.alibaba.fastjson.JSONObject;
import com.dubbo.pay.modular.api.chanel.channel4.consts.Channel4Constent;
import com.dubbo.pay.modular.api.service.IPayNotifyService;
import com.dubbo.pay.modular.api.utils.PayDigestUtil;
import com.dubbo.pay.modular.api.utils.ResponseUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;

/**
* @Description
* @Auther: libo
* @date: 2018/12/8:17:39
*/
@Slf4j
@RestController
public class Channel4NotifyController {

@Autowired
IPayNotifyService payNotifyService;

/**
* status 订单状态,1:成功,其他失败
* customerid 商户编号
* sdpayno 平台订单号
* sdorderno 商户订单号
* total_fee 交易金额
* paytype 支付类型
* sign MD5加密验证
*/
@RequestMapping(value = "/pnotify/channel4", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public void payNotifyRes(@RequestBody JSONObject param, HttpServletResponse response) {
String status = param.getString("status");
String sdorderno = param.getString("sdorderno");
String customerid = param.getString("customerid");
String sdpayno = param.getString("sdpayno");
String totalFee = param.getString("total_fee");
String paytype = param.getString("paytype");
String sign = param.getString("sign");

int payResult = 0;
try {
//解析参数
log.info("====== 通道4:接收支付回调通知开始解析参数。param={} ======", param);

if (sdorderno == null || status == null) {
log.error("====== 通道4:回调数据解析失败,sdorderno={},status={} ======", sdorderno, status);
ResponseUtil.write(response, "回调数据解析失败");
return;
}

String signStr = "customerid=" + customerid + "&status=" + status + "&sdpayno=" + sdpayno + "&sdorderno=" + sdorderno + "&total_fee=" + totalFee + "&paytype=" + paytype + "&" + Channel4Constent.KEY;
if (StringUtils.isBlank(sign) || !sign.equals(PayDigestUtil.md5(signStr))) {
log.error("====== 通道4:签名验证失败。签名参数:{},md5加密后实际值:{} ======", sign, PayDigestUtil.md5(signStr));
ResponseUtil.write(response, "签名验证失败");
return;
}

if ("1".equals(status)) {
payResult = 1;
log.info("====== 支付成功 ======");
}

if (payNotifyService.payHandler(sdorderno, payResult)) {
ResponseUtil.write(response, "success");
return;
}
} catch (Exception e) {
log.error("====== 通道4:回调异常。e={} ======", e);
}
ResponseUtil.write(response, "-1");
}
}

Linux查看和修改时区 - 毛帅的博客

Java中的Date和时区转换

Date里存放的毫秒数是与时区无关的,Date对象里存的是自格林威治时间( GMT)1970年1月1日0点至Date对象所表示时刻所经过的毫秒数。

Sysytem.out.println函数在打印时间时,会取操作系统当前所设置的时区,然后根据这个时区将同毫秒数解释成该时区的时间。

Mysql 更新时间(加上或者减去一段时间)

Java List API

win10更新后 chrome内核浏览器总是打开网页一直加载 甚至打不开 解决方法

新的表格展示利器 Bootstrap Table Ⅰ

【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。

js比较两个日期大小

@RequestParam 可以使用方法来填充默认值吗???

分析DateUtil.offsetMinute()

位置:支付后台com.dubbo.pay.modular.pay.controller.list()

总结Guns后台分页逻辑

mybatis中大于等于小于等于的写法- chenxingde的博客- CSDN博客

什么是js中的闭包?

学习Javascript闭包(Closure) - 阮一峰的网络日志

Spring Boot Controller - 小单的博客专栏- CSDN博客 - CSDN Blog

Spring Boot 静态资源处理

spring boot(4)-html和templates

微信内置浏览器是什么?

判断微信客户端的那些坑

如何区分客户端是手机端还是PC端

java request判断是否是微信客户端访问

移动端监听安卓手机返回键

移动端web开发,页面如何监听安卓手机物理返回键的回退事件

@Value默认值

1
@Value("${spring.datasource.db-name:guns}")

使用AOP处理注解时出现error Type referred to is not an annotation type:xxx

error Type referred to is not an annotation type:

Excel 怎么实现让部分内容滚动,比如表头不动,只又表体跟着鼠标滚轮滚动。

冻结窗格以锁定行和列

Excel怎么设置时间间隔

@Transactional(rollbackFor=Exception.class)的使用- Mint6的博客 …

RC4加密算法 - 维基百科

App开放接口api安全性—Token签名sign的设计与实现

PAT——甲级1042:Shuffling Mashine

jQuery 去掉字符串前后空格

1
$.trim(str)

mybatis 不能将string类型的时间 插入到数据库。